一:需要解析的json字段
{
"result": 1
"presons": [
{
"url": "http://www.imooc.com/video/8331/0",
"name": "kirito",
"schoolInfos": [
{
"school_name": "北大"
},
{
"school_name": "清华"
}
],
"age": 18
}
],
}
二:解析的代码
private List<Person> parseJson(String json){
List<Person> personList = new ArrayList<>();
try {
JSONObject obj = new JSONObject(json);
int result = obj.getInt("result");
if (result == 1){
JSONArray persons = obj.getJSONArray("persons");
for (int i = 0; i < persons.length(); i++) {
Person per = new Person();
JSONObject person = persons.getJSONObject(i);
String url = person.getString("url");
String name = person.getString("name");
int age = person.getInt("age");
List<SchoolInfo> list_schinfo = new ArrayList<>();
JSONArray schoolinfos = person.getJSONArray("schoolinfos");
for (int j = 0; j < schoolinfos.length(); j++) {
JSONObject schoolinfo = schoolinfos.getJSONObject(j);
String school_name = schoolinfo.getString("school_name");
list_schinfo.add(new SchoolInfo(school_name));
}
per.setAge(age);
per.setUrl(url);
per.setSchoolInfos(list_schinfo);
per.setName(name);
personList.add(per);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
return personList;
}
三:辅助类
package com.example.kirito.myapplication.gson;
import java.util.List;
/**
* Created by kirito on 2016.10.25.
*/
public class Person {
private String name;
private String url;
private int age;
private List<SchoolInfo> schoolInfos;
public List<SchoolInfo> getSchoolInfos() {
return schoolInfos;
}
public void setSchoolInfos(List<SchoolInfo> schoolInfos) {
this.schoolInfos = schoolInfos;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
package com.example.kirito.myapplication.gson;
import java.util.List;
/**
* Created by kirito on 2016.10.25.
*/
public class Result {
private int result;
private List<Person> presons;
public int getResult() {
return result;
}
public void setResult(int result) {
this.result = result;
}
public List<Person> getPresons() {
return presons;
}
public void setPresons(List<Person> presons) {
this.presons = presons;
}
}
package com.example.kirito.myapplication.gson;
/**
* Created by kirito on 2016.10.25.
*/
public class SchoolInfo {
private String school_name;
public SchoolInfo(String school_name) {
this.school_name = school_name;
}
public String getSchool_name() {
return school_name;
}
public void setSchool_name(String school_name) {
this.school_name = school_name;
}
}