Android GSON 解析 JSON
2017-04-10 本文已影响168人
ALEXIRC
参考: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);
需要注意的是如果对应的键值和成员名称不同的话可以使用注解来标记。