參考:http://blog.isming.me/2014/06/04/parse-json-in-android/
另外這幾篇文章講的也都不錯:
https://yq.aliyun.com/articles/37104
http://qingbob.com/be-careful-with-character-escape-in-stringify-json/
假如有以下幾個json字符串
{"name":"sam","age":18,"weight":60} //json1 一個json對象
[12,13,15] //json2 一個數字數組
[{"name":"sam","age":18},{"name":"leo","age":19},{"name":"sky", "age":20}] //json3 json array中有object
第一個json字符串 json1的解析
1.構建實體類
public class People{
public String name;
@SerializedName(age)
pubic int mAge; //如果我們類中成員的名稱和json對象中的鍵名不同,可以通過注解來設置名字
public int weight;
}
2.解析
Gson gson = new Gson();
Poeple people = gson.fromJson(json1, People.class);
第二個json字符串 json2的解析
對于第二個json2哼拔,我們可以解析成int數組愿卸,也可以解析成Integer的List。
解析成數組:
Gson gson = new Gson();
int[] ages = gson.fromJson(json2, int[].class);
解析成List:
Gson gson = new Gson();
List<Integer> ages = gson.fromJson(json2, new TypeToken<List<Integer>>(){}.getType);
第三個json字符串 json3的解析
第三個同樣可以解析成List或者數組脚草,我們就直接解析成List.
Gson gson = new Gson();
List<People> peoples = gson.fromJson(json3, new TypeToke<List<People>>(){}.getType);
需要注意的是如果對應的鍵值和成員名稱不同的話可以使用注解來標記。