读书人

容易的JSON解析

发布时间: 2013-04-07 12:50:11 作者: rapoo

简单的JSON解析

用google-gson来解析json,jar包附件中

方法1:

import java.io.StringReader;import com.google.gson.stream.JsonReader;public class JsonUtils {public void parseJson(String jsonData){try{//如果需要解析JSON数据,首要要生成一个JsonReader对象JsonReader reader = new JsonReader(new StringReader(jsonData));reader.beginArray();while(reader.hasNext()){reader.beginObject();while(reader.hasNext()){String tagName = reader.nextName();if(tagName.equals("name")){System.out.println("name--->" + reader.nextString());}else if(tagName.equals("age")){System.out.println("age--->" + reader.nextInt());}}reader.endObject();}reader.endArray();}catch(Exception e){e.printStackTrace();}}}json就是字符串:String jsonData = "[{\"name\":\"Michael\",\"age\":20},{\"name\":\"Mike\",\"age\":21}]";

?方法2.1:把json转化为java对象(单个对象!)

要转化成的对象:

public class User {private String name ;private 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;}}

?解析:

import com.google.gson.Gson;public class JsonUtils {public void parseUserFromJson(String jsonData){Gson gson = new Gson();User user = gson.fromJson(jsonData, User.class);System.out.println("name--->" + user.getName());System.out.println("age---->" + user.getAge());}}

其中String jsonData = "{\"name\":\"Michael\",\"age\":20}";

?方法2.2:把json转化为java对象数组!

1.要转化成的对象还是上面的User类对象。

2.解析;

import java.lang.reflect.Type;import java.util.Iterator;import java.util.LinkedList;import com.google.gson.Gson;import com.google.gson.reflect.TypeToken;public class JsonUtils {public void parseUserFromJson(String jsonData){Type listType = new TypeToken<LinkedList<User>>(){}.getType();Gson gson = new Gson();LinkedList<User> users = gson.fromJson(jsonData, listType);for (Iterator iterator = users.iterator(); iterator.hasNext();) {User user = (User) iterator.next();System.out.println("name--->" + user.getName());System.out.println("age---->" + user.getAge());}}}

?其中String jsonData = "[{\"name\":\"Michael\",\"age\":20},{\"name\":\"Mike\",\"age\":21}]";

读书人网 >JavaScript

热点推荐