首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

容易的JSON解析

2013-04-07 
简单的JSON解析用google-gson来解析json,jar包附件中方法1:import java.io.StringReaderimport com.googl

简单的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}]";

热点排行