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());
}