Android开发实战(十八):Android Studio 优秀插件:GsonFormat
Android Studio 优秀插件系列:
Android Studio 优秀插件(一):GsonFormat
Android Studio 优秀插件(二): Parcelable Code Generator
-------------------------------------------------------------------------------------------------------
这几天没有活,于是乎整理了一些代码,顺便把一些一直在使用的东西也整理下,然后学习新的知识。。
-------------------------------------------------------------------------------------------------------
作为一个Android程序猿,当你看到后台给你的json数据格式时:
{ "id":123, "url": "http://img.donever.com/aa/bb.jpg", "width":500, "height":500, "likeCount":1, "description":"嘿嘿", "time":1234567890, "replyCount":0, "floorCount":0, "likeUserCount":5, "age":14, "name":"jack", "school":"beijing", "type":1, "sax":"boy", "userid":1223 }
是不是要默默的创建一个类,然后一个个变量的private 一下,然后get()+set()?
如果一个json数据提供的属性20+条或者30+条呢,一个个属性去写,还要保证字母不写错,大小写也没错,是不是既浪费时间又浪费精力,那么就试试使用GsonFormat插件吧
现在学习下如何使用这个插件:
1、Android Studio 打开一个项目,点击左上角 File -->Settings... 进行设置
2、选择插件Plugins , 搜索GsonFormat ,如果你没有下载过这个插件,那么搜索框下面会显示“Nothing to show.Click Browse to....”
3、那就点击蓝色字体的 Browse 吧 ,这个时候会出现如下图的界面,我们只需要在左边选中GsonFormat 然后点击右面 绿色按钮 "Install plugin" 就可以了
4、完成了上面三个步骤,就可以使用GsonFormat插件了
怎么用呢,
(1)创建一个类文件,类名是看你需求自定义写的
(2)快捷键 alt+insert ,会出现如下选择框
(3)我们点击第一个选项,GsonFormat,就会出现一个新的框,
然后只需要将服务器给你的json数据的 格式复制进去 ,如下所示,点击Ok就可以了(注意json格式不要出错,比如不要少了每个属性后面的逗号)
(4)最后一步,出现这么一个框,这里你可以进行相应的编辑,比如吧一个属性的类型改变,或者 去掉属性前面的蓝底白勾,让类不具有某个属性
效果类:
1 public class People { 2 3 /** 4 * id : 123 5 * url : http://img.donever.com/aa/bb.jpg 6 * width : 500 7 * height : 500 8 * likeCount : 1 9 * description : 嘿嘿 10 * time : 1234567890 11 * replyCount : 0 12 * floorCount : 0 13 * likeUserCount : 5 14 * age : 14 15 * name : jack 16 * school : beijing 17 * type : 1 18 * sax : boy 19 * userid : 1223 20 */ 21 22 private int id; 23 private String url; 24 private int width; 25 private int height; 26 private int likeCount; 27 private String description; 28 private int time; 29 private int replyCount; 30 private int floorCount; 31 private int likeUserCount; 32 private int age; 33 private String name; 34 private String school; 35 private int type; 36 private String sax; 37 private int userid; 38 39 public static People objectFromData(String str) { 40 Gson gson = new Gson(); 41 42 return new com.google.gson.Gson().fromJson(str, People.class); 43 } 44 45 public void setId(int id) { 46 this.id = id; 47 } 48 49 public void setUrl(String url) { 50 this.url = url; 51 } 52 53 public void setWidth(int width) { 54 this.width = width; 55 } 56 57 public void setHeight(int height) { 58 this.height = height; 59 } 60 61 public void setLikeCount(int likeCount) { 62 this.likeCount = likeCount; 63 } 64 65 public void setDescription(String description) { 66 this.description = description; 67 } 68 69 public void setTime(int time) { 70 this.time = time; 71 } 72 73 public void setReplyCount(int replyCount) { 74 this.replyCount = replyCount; 75 } 76 77 public void setFloorCount(int floorCount) { 78 this.floorCount = floorCount; 79 } 80 81 public void setLikeUserCount(int likeUserCount) { 82 this.likeUserCount = likeUserCount; 83 } 84 85 public void setAge(int age) { 86 this.age = age; 87 } 88 89 public void setName(String name) { 90 this.name = name; 91 } 92 93 public void setSchool(String school) { 94 this.school = school; 95 } 96 97 public void setType(int type) { 98 this.type = type; 99 } 100 101 public void setSax(String sax) { 102 this.sax = sax; 103 } 104 105 public void setUserid(int userid) { 106 this.userid = userid; 107 } 108 109 public int getId() { 110 return id; 111 } 112 113 public String getUrl() { 114 return url; 115 } 116 117 public int getWidth() { 118 return width; 119 } 120 121 public int getHeight() { 122 return height; 123 } 124 125 public int getLikeCount() { 126 return likeCount; 127 } 128 129 public String getDescription() { 130 return description; 131 } 132 133 public int getTime() { 134 return time; 135 } 136 137 public int getReplyCount() { 138 return replyCount; 139 } 140 141 public int getFloorCount() { 142 return floorCount; 143 } 144 145 public int getLikeUserCount() { 146 return likeUserCount; 147 } 148 149 public int getAge() { 150 return age; 151 } 152 153 public String getName() { 154 return name; 155 } 156 157 public String getSchool() { 158 return school; 159 } 160 161 public int getType() { 162 return type; 163 } 164 165 public String getSax() { 166 return sax; 167 } 168 169 public int getUserid() { 170 return userid; 171 } 172 }
如果要使用Gson解析的话 ,即 通过Json字符串直接获取对应的类对象
public static People objectFromData(String str) { Gson gson = new Gson(); return gson.fromJson(str, People.class); }
记得在build.gradle 中加上
compile 'com.google.code.gson:gson:2.4'

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Android项目实战(十七):QQ空间实现(二)—— 分享功能 / 弹出PopupWindow
原文: Android项目实战(十七):QQ空间实现(二)—— 分享功能 / 弹出PopupWindow 这是一张QQ空间说说详情的截图。 分析: 1、点击右上角三个点的图标,在界面底部弹出一个区域,这个区域有一些按钮提供给我们操作 2、当该区域出现的时候,详情界面便灰了,也说成透明度变化了 3、当任意选了一个按钮或者点击了该区域以外的部分,该区域消失,灰色界面变回亮白色,并执行点击的按钮对应的操作 显然,这个功能我们需要用PopupWindow实现更好~ -------------------------------------------------------------------------------------- 下面通过一个Demo来实现这个需求~~ 效果图: 首先还是布局文件: 1、主界面: 我们只需要在界面的右上角放一个按钮来弹出PopupWindow ,注意 父容器需要有一个id,因为我们需要它来给PopupWindow设置弹出的位置 <RelativeLayout xmlns:android="http://schemas.android.com/apk/...
- 下一篇
Android项目实战(十九):Android Studio 优秀插件: Parcelable Code Generator
原文: Android项目实战(十九):Android Studio 优秀插件: Parcelable Code Generator Android Studio 优秀插件系列: Android Studio 优秀插件(一):GsonFormat Android Studio 优秀插件(二): Parcelable Code Generator ----------------------------------------------------------------------------- Parcelable , 这个词大家应该不陌生吧,用于序列化对象的一个接口 不清楚的可以看一下这篇博客:Intent传递对象的两种方法 ----------------------------------------------------------------------------- 这里假设我们已经会使用Parcelable 序列化一个对象了~~ 那么大家会发现Parcelable 使用起来有些复杂,因为我们要自己复写 几个方法,而且当类的属...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2整合Redis,开启缓存,提高访问速度
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果