首页 > 代码库 > Gson解析json数据(转)
Gson解析json数据(转)
一、
www.json.org这是JSON的官方网站。
首先,我,我们需要在code.google.com/p/google-gson/downloads/list下载JSON的jar包,解析后把gson-1.6.jar文件导入到你那个需要解析的项目中去。
解析JSON例子,如下:
1、 这是Json数据,"[{\"name\":\"Michael\",\"age\":20},{\"name\":\"Mike\",\"age\":21}]"
2、
//创建JsonReader 对象
JsonReader reader = new JsonReader(new StringReader(jsonData));
//开始解析数组
reader.beginArray();
//循环判断有没有下一个Json对象
while(reader.hasNext()){
//开始解析Json对象
reader.beginObject();
}
//循环判断Json对象里面有没有下一个键值对
while(reader.hasNext()){
String tagName = reader.nextName();
if(tagName.equal("name")){
//name键多对应的值
reader.nextString();
}else if(tagName.equal("age")){
//age键多对应的值
reader.nextString();
}
}
//Json对象的结尾
reader.endObject();
}
//数组解析的结尾
reader.endArray();
二、
***这个例子只能是针对于Json对象而不是Json数组,Json数组需要转为为Json对象,这是下一节的事情。
1. 先有一个JSON对象String str = "{\"name\":\"Michael\",\"age\":20}",JSON类可以直接把JSON数据转化为java对象
2. 创建User类
public class User{
private String name;
private int age;
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}
}
3. 创建Gson对象
Gson gson = new Gson();
//第二个是指示转为哪个类的对象
User user = gson.fromJson(str , User.class);
Sysout.out.println(user.getName);
Sysout.out.println(user.getAge);
三、
1. 这是Json数据,String str = "[{\"name\":\"Michael\",\"age\":20},{\"name\":\"Mike\",\"age\":21}]"。这个Json数据有一个数组,数组里面有两个Json对象
2. 首先必须生成Type对象,使用以下的方式(User是上一节的User类):
Type listType = new TypeToken<LinkedList<User>>(){}.getType();
3. 生成Gson对象
Gson gson = new Gson();
4. LinkedList<User> users = gson.fromJson(str , listType);
5. 循环迭代LinkedList
for(Iterator iterator = users.iterator ; iterator.hasNext() ; ){
User user = (User)iterator.next();
System.out.println(user.getName());
System.out.println(user.getAge());
}