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 Listhobby; 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"); ListhobbyList = 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());