之前熟悉Python,非常喜欢Python那种把json直接转化为一个Python对象,然后就可以很方便的读取或者修改,语法也十分简洁,在写爬虫的时候爬到json就可以感受到。
哈哈哈但是Python是Python,android开发遇到需要解析服务器数据的情况,并且不是那种结构简单的json(最外层就是列表或者整体只是一个单层键值对表),使我感觉有些棘手。
废话不多说,假设json是这样的结构,我已经将其简化:
{
"data": [{
"id": 1,
"title": "一"
}, {
"id": 2,
"title": "二"
}, {
"id": 3,
"title": "三"
}]
}
首先建一个JsonBean作为对照:
public class JsonBean {
private List<DataBean> data;
public List getData(){
return data;
}
class DataBean{
private String id;
private String title;
public String getId(){
return id;
}
public String getTitle(){
return title;
}
}
}
JsonBean这个类是以json作为样板做出来的,并且保证其中的变量名与json中对应位置的对应键名相匹配。内层的数据我就以内部类的形式写在其中了。
然后嘞,在需要使用的时候,先将gson实例化(啊,导包那些我就省略了先QAQ):
Gson gson = new Gson();
JsonBean jsonBean = gson.fromJson(responseStr,new TypeToken<JsonBean>() {}.getType());
List<JsonBean.DataBean> dataBeanList = jsonBean.getData();
用的时候嘞,直接调用那些getXXX的方法,要啥有啥。
写这篇就是为了在这里留个记号,以免以后忘记怎么使用。