Android JSON数据解析入门教程
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它基于JavaScript的一个子集,可以用于跨平台的数据交换。Android开发中,经常需要使用JSON数据格式来进行数据的交互,所以学习JSON数据解析是必不可少的。
JSON数据解析的基本方法
JSON数据解析的基本方法有两种:一种是使用Android自带的JsonObject,另一种是使用第三方库Gson。
使用JsonObject解析JSON数据
使用JsonObject解析JSON数据,需要引入org.json包,使用JsonObject和JsonArray来解析JSON数据。
// 创建JSONObject对象
JSONObject jsonObject = new JSONObject(jsonData);
// 解析JSONObject
String name = jsonObject.getString("name");
int age = jsonObject.getInt("age");
// 解析JSONArray
JSONArray array = jsonObject.getJSONArray("hobby");
for (int i = 0; i < array.length(); i++) {
String hobby = array.getString(i);
}
使用Gson解析JSON数据
使用Gson解析JSON数据,需要引入com.google.gson包,使用Gson来解析JSON数据。
// 创建Gson对象 Gson gson = new Gson(); // 解析JSONObject Person person = gson.fromJson(jsonData, Person.class); // 解析JSONArray ListhobbyList = gson.fromJson(jsonData, new TypeToken >(){}.getType());
JSON数据解析应用示例
假设要解析如下JSON数据:
{
"name": "张三",
"age": 18,
"hobby": ["篮球", "足球", "游泳"]
}
定义一个Person类,用于封装JSON数据:
public class Person {
private String name;
private int age;
private List hobby;
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 List getHobby() {
return hobby;
}
public void setHobby(List hobby) {
this.hobby = hobby;
}
}
使用JsonObject解析JSON数据:
JSONObject jsonObject = new JSONObject(jsonData);
String name = jsonObject.getString("name");
int age = jsonObject.getInt("age");
JSONArray array = jsonObject.getJSONArray("hobby");
List hobbyList = new ArrayList<>();
for (int i = 0; i < array.length(); i++) {
String hobby = array.getString(i);
hobbyList.add(hobby);
}
Person person = new Person();
person.setName(name);
person.setAge(age);
person.setHobby(hobbyList);
使用Gson解析JSON数据:
Gson gson = new Gson(); Person person = gson.fromJson(jsonData, Person.class); ListhobbyList = gson.fromJson(jsonData, new TypeToken >(){}.getType());