1.什么是JSON
1.Javascript Object Notation
2.JSON数据是一系列键值对的集合
3.JSON已经被大多数开发人员接受,在网络当中传输数据中应用非常广泛
4.JSON相对于XML来讲解析稍微简单一些
2.JSON与XML
1.JSON和XML的数据可读性基本相同
2.JSON和XML同样拥有丰富的解析手段
3.JSON相对于XML来讲,数据体积小
4.JSON与Javascript的交互更方便
5.JSON对数据的描述性相对较差
3.JOSN数据格式
[{
"Name":"dier",
"Address":{
"City":"Shantou",
"Postcode":"515000"
}
},{
"Name":"dier",
"Address":{
"City":"Shantou",
"Postcode":"515000"
}
}]
4.使用Gson解析JSON数据
官方网站:http://code.google.com/p/google-gson/
1.在项目中新建libs目录
2.将gson-1.6.jar包,拷贝到项目中的libs目录
3.在包上面右键 - Build Path - Add Build Path
4.JSON解析方法
[{"name":"dier","age":"30"},{"name":"leeq","age":"23"}]
第一种解析方式:流水式解析
public void parseJson(string data){
JsonReader reader = new JsonReader(new StringReader(data));
reader.beginArray();
while(reader.hasNext()){
reader.beginObject();
while(reader.hasNext()){
String tagName = reader.nextName();
if(tagName.equals("name")){
System.out.println("name is " + reader.nextString());
}else if(tagName.equals("age")){
System.out.println("age is " + reader.nextString());
}
}
reader.endObject();
}
reader.endArray();
}
第二种解析方式:对象解析
public class User{
private String name;
private int age;
//get set get set 省略
}
Gson gson = new Gson();
User user = gson.fromJson(data, User.class);
Type listType = new TypeToken<LinkedList<User>>(){}.getType();
Gson gson = new Gson();
LinkedList<User> users = gson.fromJson(data, listType);
for(Iterator iterator = users.iterator(); iterator.hasNext();)
User user = (User)iterator.next();
System.out.printLn(user.getName() + user.getAge());
}