Android Json数据解析处理

2013-08-14

Android Json数据解析处理

2013-08-14

Json 是一种轻量级的数据交换格式。采用完全独立的语言文本格式,易于人阅读和编写,同时也易于机器解析和生成。android开发中也常常用到Json传输数据,下面简单介绍几种解析方法。

待解析的Json数据 jsonStr

{
  "id":0,
  "name":"初三一班",
  "students":[
     {"name":"guest","id":2},
     {"name":"root","id":3}
  ]
}

通过JsonObject

这里只做简单的用法,不涉及数据的封装。注意捕获异常!

JSONObject clazzObj = new JSONObject(jsonStr);
int clazzId = clazzObj.getInt("id");
String clazzName = clazzObj.getString("name");
JSONArray stuArray = clazzObj.getJSONArray("students");
for (int i = 0; i < stuArray.length(); i++) {
  JSONObject stuObj = stuArray.getJSONObject(i);
  int stuId = stuObj.getInt("id");
  String stuName = stuObj.getString("name");
}        

通过Gson来解析并转换成数据实体类

Gson 是google开发的一个解析库,能实现Json数据与数据实体类相互转换

学生实体类
public class Student{
  private Long id;
  private String name;

  //这里省略了setter和getter方法

}
班级实体类
public class Clazz{
  private Long id;
  private String name;
  private List<Student> students;

  //这里省略了setter和getter方法

}
将数据转换成实体类
Gson gson = new Gson();
Clazz clazz = gson.fromJson(jsonStr,Clazz.class);
将实体类转换成Json
Gson gson = new Gson();
String jsonStr = gson.toJson(clazz);

通过FastJson来解析并转换成数据实体类

阿里推出的一款快速解析Json类库,功能用法跟Gson相似,支持多语言多平台,感兴趣的可去官网看看

FastJson 官网地址

Clazz clazz = JSON.parseObject(jsonStr,Clazz.class);