Android开发实战(十八):Android Studio 优秀插件:GsonFormat                       Android Studio 优秀插件(二): Parce

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'

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏13blog.site

intellij idea 常用快捷键mac版

login.jsp文件中的html标签都是大写格式的,看着很不舒服,就改了一下,全部用的快捷键修改成小写的,也因此整理了一下常用的快捷键。 shift + Co...

2374
来自专栏battcn

一起来学SpringBoot | 第十八篇:轻松搞定全局异常

实际项目开发中,程序往往会发生各式各样的异常情况,特别是身为服务端开发人员的我们,总是不停的编写接口提供给前端调用,分工协作的情况下,避免不了异常的发生,如果直...

892
来自专栏Java与Android技术栈

Retrofit 风格的 RxCache及其多种缓存替换算法

之前的文章《给 Java 和 Android 构建一个简单的响应式Local Cache》、《RxCache 整合 Android 的持久层框架 greenDA...

382
来自专栏Java架构师历程

spring boot应用启动原理分析

摘要: spring boot quick start 在spring boot里,很吸引人的一个特性是可以直接把应用打包成为一个jar/war,然后这个jar...

2203
来自专栏企鹅号快讯

渗透技巧——”隐藏”注册表的创建

0x00 前言 知名恶意软件Poweliks曾使用过的一个后门技术,在注册表启动位置创建一个特殊的注册表键值,通过mshta来执行payload 对于这个特殊的...

1948
来自专栏小灰灰

SpringMVC之请求参数的获取方式

一般最常见的请求为GET和POST,get请求的参数在url上可以获取,post请求参数除了url上还有可能在表单中,文件上传时,获取方式又和一般的参数获取不一...

3195
来自专栏智能大石头

C#嵌入x86汇编——一个GPIO接口的实现

开始进入工业自动化,买的工控机带有GPIO接口,可用于直接控制继电器。 从厂家拿到接口手册一看,居然是汇编直接操作端口,基本上是IN/OUT指令了。接口很简单,...

1916
来自专栏

.NET 2.0 Web Services的bug?

今天测试.net 2.0的WebService,发现了一个大问题。就是无法获取参数,参数永远是null。当然了使用.net调用没有任何问题,web测试页也正常。...

742
来自专栏Jed的技术阶梯

zookeeper案例之4个逻辑思维训练小题目

932
来自专栏Java编程技术

Velocity引擎原理探究

常见的Java模板引擎有JSP、Freemark,Velocity。在MVC三层框架中,模板引擎属于view层,实质是把model层内容展现到前台页面的一个引擎...

1072

扫码关注云+社区