什麼是JSON
1、 JSON:JavaScript Object Notation
2、 JSON資料是一系列索引值對的集合
3、 JSON已經被大多數開發人員接受,在網路資料的傳輸當中應用非常廣泛
4、 JSON相對於XML來講解析稍微方便一些
JSON和XML
1、 JSON和XML的資料可讀性基本相同
2、 JSON和XML同樣擁有豐富的解析手段
3、 JSON相對於XML來講,資料體積小
4、 JSON和JavaScript的互動更加方便
5、 JSON對資料的描述性相對較差
JsonReader 從android 3.0版開始支援
因此使用google的gson api,需要下載jar包並手動加入。
jsonData為需要解析的json資料:
[{"name":"zhangsan","age":20},{"name":"lisi","age":30}]
try{
JsonReaderreader = new JsonReader(new StringReader(jsonData));
reader.beginArray();
while(reader.hasNext()){
reader.beginObject();
while(reader.hasNext()){
StringtagName = reader.nextName();
if(tagName.equals("name")){
System.out.prinltn("name--->"+ reader.nextString());
}
elseif(tagName.equals("age")){
System.out.println("age--->"+ reader.nextString());
}
}
reader.endObject();
}
reader.endArray();
}
catch(Exception e){
e.printStackTrace();
}
jsonData為 {"name":"Michael","age":30}
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;
}
}
Gson gson = new Gson(); //gson類庫提供的對象
User user = gson.fromJson(jsonData,User.class);//將JSON對象轉換成User類對象
jsonData為[{"name":"Michael","age":30},{"name":"mary","age":20}]
Type listType = new TypeToken<LinkedList<User>>(){}.getType();
Gson gson = new Gson();
LinkedList<User> users = gson.fromJson(jsonData,
listType);//將多個資料轉換成User數組
for(Iterator iterator = users.iterator(); iterator.hasNext();){
User user = (User)iterator.next();
}