1.解析一个对象
可以直接从Json中将队形解析出来,这个Json必须是一个Json对象,如下:
{"name":"zhangsan","age":22,"address":"太原"}
它只是一个对象。
我新建一个类,生成get和set方法,如下:
package com.zhycheng;
public class Human {
String name,address;
int age;
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 String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
然后使用如下代码直接解析
String s="{\"name\":\"zhangsan\",\"age\":22,\"address\":\"太原\"}";
Gson g=new Gson();
Human h=g.fromJson(s, Human.class);
System.out.println(h.getName()+";"+h.getAge()+";"+h.getAddress());
2.解析数组
下面解析如下的Json数据:
[{"name":"zhangsan","age":22,"address":"太原"},
{"name":"lisi","age":20,"address":"黄冈"},
{"name":"wangwu","age":21,"address":"武汉"}]
代码如下: String s="[{\"name\":\"zhangsan\",\"age\":22,\"address\":\"太原\"},{\"name\":\"lisi\",\"age\":20,\"address\":\"黄冈\"},{\"name\":\"wangwu\",\"age\":21,\"address\":\"武汉\"}]";
Type type=new TypeToken<LinkedList<Human>>(){}.getType();
Gson g=new Gson();
LinkedList<Human> ll=g.fromJson(s, type);
for(int i=0;i<ll.size();i++)
{
Human h=(Human)ll.get(i);
System.out.println(h.getName()+","+h.getAge()+","+h.getAddress());
}
在这里要注意:
1.Json里的数据时数组,数组里是对象
2.泛形一定要用,否则出错