日期:2014-05-16  浏览次数:20402 次

Android JSON数据解析实例

三种方法:

???private String jsonData1 = "[{\"name\":\"tom\",\"age\":\"20\"},{\"name\":\"lily\",\"age\":\"21\"}]";

??? 1。解析方法

?public void parseJson(String jsonData){
??
? ?try {
?? ?//如果需要解析JSON数据,首先要生成JsonReader对象
?? ?JsonReader reader = new JsonReader(new StringReader(jsonData));
? ??/**
?? ? * 1.现在开始解析一个数组
?? ? * 2.开始解析对象
?? ? * 3.解析键值对
??? ?* 4.解析键值对
???? * 5.解析对象结束
?? ? * 6。开始解析对象
??? ?* 7.解析键值对
??? ?* 8.解析键值对
?? ? * 9.解析对象结束
??? ?* 10.解析数组结束
???? */
??? ?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 (IOException e) {
????????? e.printStackTrace();
?? ?}
? }

?解析方法二:

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

、、这种只能解析对象,不可以解析数组的

? 解析方法三:

? 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 JsonUtilsArray {
?????????? ?public void parseJson(String jsonData){
??????????????????? System.out.println(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());
???????????????????? }
???????????? }
? }

?