GSON解析复杂性json串
来源:互联网 发布:看得很湿的黄文 知乎 编辑:程序博客网 时间:2024/06/11 19:17
1.前段时间出去找工作了,目前已经工作了一周,有一个很明显的感觉,就是自己的进度缓慢,的确公司项目和自己平时练习项目的确有很大的距离。平时练习写的demo短板太大。今天我就把我自己在项目中遇到的问题记录下。主要是关于json解析的问题。
2.有这么一段json串:
{"responseCode": "200","state":1,"data":[{ "name":"wxy", "age":18, "sex":"男", "features":[ { "height":177, "weight":160, "big":"180" }, { <span style="white-space:pre"></span> "height":178, "weight":150 } ]},{ "name":"wxy", "age":18, "sex":"男", "features":[ { "height":177, "weight":160, "big":"200" }, { "height":178, "weight":150 } ]}] }这个串的结构是:
首先一个大的 jsonobject,里面有一个jsonarray。
然后jsonarray里面又有一个jsonObject,而这个jsonobject里面又有一个jsonarray。这样的该怎么解析呢?
jsonarray里面的数据,一般都是同类型的,因此只要看到[ ],我们就要确定要使用List。
具体解析如下:
1.首先创建一个大的javabean:
public String responseCode;public int state;public List<Result>data;public String getResponseCode() {return responseCode;}public void setResponseCode(String responseCode) {this.responseCode = responseCode;}public int getState() {return state;}public void setState(int state) {this.state = state;}public List<Result> getData() {return data;}public void setData(List<Result> data) {this.data = data;}2.然后再创建Result的类:因为Result里面的数据也有jsonarray:所以可以肯定Result类里面肯定有一个LIst。代码如下:
public static class Result{public String name;public int age;public String sex;public List<Infor>features;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public List<Infor> getFeatures() {return features;}public void setFeatures(List<Infor> features) {this.features = features;}}
3.在看Infor类。注意Featrues这个jsonarray里面。第二个jsonobject 没得big 属性,而第一个有。(这是我们公司真实的案例)
其实不管有没有big属性,我们都可以在Infor类中加上去。
public static class Infor{public String big;public int height;public int weight;public int getHeight() {return height;}public void setHeight(int height) {this.height = height;}public int getWeight() {return weight;}public void setWeight(int weight) {this.weight = weight;}public String getBig() {return big;}public void setBig(String big) {this.big = big;}}
Gson gson =new Gson(); JavaBean bean=gson.fromJson(response, JavaBean.class);
代码就是这俩行。
注意:因为features那个jsonobject 没得big列,所以你获取值的时候不会得到值,因此你可以在Infor类中。给big一个初始值,通过这个初始值来判断。有没有big列。
一个请求就需要设计3个javabean,假如每个bean都写在一个类中,这样无疑是太多了。因为一个项目中的请求很多的。
所以有必要把这个3个写在一起。
这里注意的一点是:Result和Infor类 全部要加一个修饰 static。
代码如下:
public class JavaBean {public String responseCode;public int state;public List<Result>data;public String getResponseCode() {return responseCode;}public void setResponseCode(String responseCode) {this.responseCode = responseCode;}public int getState() {return state;}public void setState(int state) {this.state = state;}public List<Result> getData() {return data;}public void setData(List<Result> data) {this.data = data;}public static class Result{public String name;public int age;public String sex;public List<Infor>features;public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getSex() {return sex;}public void setSex(String sex) {this.sex = sex;}public List<Infor> getFeatures() {return features;}public void setFeatures(List<Infor> features) {this.features = features;}}public static class Infor{public String big;public int height;public int weight;public int getHeight() {return height;}public void setHeight(int height) {this.height = height;}public int getWeight() {return weight;}public void setWeight(int weight) {this.weight = weight;}public String getBig() {return big;}public void setBig(String big) {this.big = big;}}}
好了,今天主要的问题是:json串中每个jsonobject中都嵌套了一个jsonarray的时候,该如何解析。
下一节主要说下,Volley post传参数的使用,这个我真是踩到地雷了,纠结了半天,导致自己上班时候效率不高。
0 0
- GSON解析复杂性json串
- JSON解析 GSON解析
- json解析:gson解析json
- Gson解析Json数据
- 使用Gson解析Json
- Android JSON Gson 解析
- 使用Gson解析json
- Gson解析json
- Gson解析Json数据
- 使用Gson解析json
- Gson解析Json步骤
- Gson解析Json
- JSON解析之-Gson
- Gson解析json
- Gson解析json
- json解析-Gson
- JSON 之GSON 解析
- gson解析json(总结)
- ps软件下载、安装及破解
- Ojbect对象的所有字段的表示方法
- HTML&CSS基础学习笔记1.13-有序列表及列表嵌套
- JAVA_时间计时器
- kafka集群搭建和使用Java写kafka生产者消费者
- GSON解析复杂性json串
- Reference
- android 实现由下至上弹出并位于屏幕底部的提示框
- 多线程的几种加锁方式详解
- LINQ排序,join on,分组查询,any和all量词
- 对于handler内存泄漏分析解决+实例
- yarn-cluster运行spark streaming问题
- matlab显示并保存RGB图像的单个通道图像
- HDU 4990 / BC 8B Reading comprehension