1. 使用gson解析json对象
1.首先,准备一个json对象格式的数据(以花括号开头和结尾的数据)
{
"name":"zhangsan",
"age":"20",
"languages":[ {"num":1,"subject":"Java"}, {"num":2,"subject":"Swift"}, {"num":3,"subject":"C#"} ] }
2.将json对象转换成标准的javabean
public class JsonData {
private String name;
private String age;
private List<Languages> languages;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public List<Languages> getLanguages() {
return languages;
}
public void setLanguages(List<Languages> languages) {
this.languages = languages;
}
}
public class Languages {
private String num;
private String subject;
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
}
3.主函数在获得了json对象的字符串数据后,使用gson进行解析
private void parseJsonDate(String jsonData) {
Gson gson = new Gson();
//将字符串类型的json对象数据转换成定义好的javabean中
JsonData data = gson.fromJson(jsonData, JsonData.class);
System.out.println(data.getName());
System.out.println(data.getAge());
List<Languages> languages = data.getLanguages();
for (Languages lan : languages) {
System.out.println(lan.getNum());
System.out.println(lan.getSubject());
}
}
2. 使用gson解析json数组
1.首先,准备一个json数组格式的数据(以中括号开头和结尾的数据)
[
{
"name": "zhangsan",
"age": "20",
"address": "beijing" },
{
"name": "lisi",
"age": "21",
"address": "shanghai" }
]
2.将json数组的数据封装成标准的javabean
public class JsonData {
private String name;
private String age;
private String address;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
3.主函数在获得了json数组的字符串数据后,使用gson进行解析
private void parseJsonDate(String jsonData) {
Gson gson = new Gson();
//将字符串类型的json数组数据转换成定义好的javabean中,并指定返回的集合类型
List<JsonData> data = gson.fromJson(jsonData, new TypeToken<List<JsonData>>() {}.getType());
for (JsonData jsondata : data) { System.out.println(jsondata.getName()); System.out.println(jsondata.getAge()); System.out.println(jsondata.getAddress()); }
}
json数组数据就转换成一个指定了类型的集合中了。看下日志: