各位看官们,大家好,上一回中咱们说的是Android中Gson库解析JSON数组的例子,这一回中咱们继续介绍该例子。闲话休提,言归正转。让我们一起Talk Android吧!
示例程序
看官们,我们在本章回中继续介绍如何使用Gson库解析JSON数组,不过JSON数组比较特殊,特殊之处体现为:JSON数组中包含JSON对象,JSON对象中包含JSON数组。这样的组合,我们称其为你中有我,我中有你。下面是具体的示例代码,请大家参考:
String jsonString =
"{\"data\":{\"count\":5,\"items\":[{\"id\":9,\"title\":\"book\"},{\"id\":32,\"title\":\"pan\"}]},\"return_code\":200,\"return_msg\":\"success\"}";
Gson gsonObj = new Gson();
JavaJsonMixData jsonBeanObj = gsonObj.fromJson(jsonString, JavaJsonMixData.class);
在上面的程序中我们把JSON数据当作JSON对象来解析,因此解析的方法和解析JSON对象的方法一致,这里不再详细列出。这里重点关注一下JavaJsonMixData类,它由GsonFormat生成,具体的定义如下:
public class JavaJsonMixData {
/**
* data : {"count":5,"items":[{"id":9,"title":"book"},{"id":32,"title":"pan"}]}
* return_code : 200
* return_msg : success
*/
private DataBean data;
private int return_code;
private String return_msg;
public DataBean getData() {
return data;
}
public void setData(DataBean data) {
this.data = data;
}
public int getReturn_code() {
return return_code;
}
public void setReturn_code(int return_code) {
this.return_code = return_code;
}
public String getReturn_msg() {
return return_msg;
}
public void setReturn_msg(String return_msg) {
this.return_msg = return_msg;
}
public static class DataBean {
/**
* count : 5
* items : [{"id":9,"title":"book"},{"id":32,"title":"pan"}]
*/
private int count;
private List<ItemsBean> items;
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public List<ItemsBean> getItems() {
return items;
}
public void setItems(List<ItemsBean> items) {
this.items = items;
}
public static class ItemsBean {
/**
* id : 9
* title : book
*/
private int id;
private String title;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
@Override
public String toString() {
return "ItemsBean{" +
"id=" + id +
", title='" + title + '\'' +
'}';
}
}
@Override
public String toString() {
return "DataBean{" +
"count=" + count +
", items=" + items +
'}';
}
}
@Override
public String toString() {
return "JavaJsonMixData{" +
"data=" + data +
", return_code=" + return_code +
", return_msg='" + return_msg + '\'' +
'}';
}
}
编译并且运行上面的程序,就可以得到转换后的Java对象我们在这里就不列出程序的运行结果了,希望大家自已动手去实践。
分析总结
回想一下,我们在前面章回中使用Java原生的方法解析这种复杂的JSON数据时步骤很复杂,而且还使用了递归和分层的思想去写程序。而使用Gson库解析这种复杂数据时只使用了fromJson
()方法,解析的复杂过程交给了库,不再需要我们自已去处理,是不是简化了解析工作?
看官们,关于Android中Gson库解析JSON数组的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!