一、什么是JSON
1.JSON:JavaScript Object Notation;
2.JSON数据时一系列键值对的集合;
3.JSON已经被大多数开发人员接受,在网络数据的传输当中应用非常广泛;
4.JSON相对于XML来讲解析稍微方便一些;
二、JSON vs XML
1. JSON和XML的数据可读性基本相同;
2.JSON和XML同样拥有丰富的解析手段;
3.JSON相对于XML来讲,数据体积小;
4.JSON与JavaScript的交互更加方便;
5.JSON对数据的描述性相对较差;
三、一个JSON的例子
四、使用JsonReader解析JSON
private String jsonData = “[{\”name\”:\”Michael\”,\”age\”:20},{\”name\”:\”Mike\”,\”age\”:21}]”;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | package lpq.json; 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(); } } } |
五、使用Gson解析JSON
private String jsonData = “{\”name\”:\”Michael\”,\”age\”:20}”;
User.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
JsonUtils.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
或者:
private String jsonData = “[{\”name\”:\”Michael\”,\”age\”:20},{\”name\”:\”Mike\”,\”age\”:21}]”;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | package lpq.json; 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()); } } } |
除非注明,饮水思源博客文章均为原创,转载请以链接形式标明本文地址