美文网首页
Android GSON 解析 JSON

Android GSON 解析 JSON

作者: ALEXIRC | 来源:发表于2017-04-10 15:38 被阅读168次

    参考: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);
    

    需要注意的是如果对应的键值和成员名称不同的话可以使用注解来标记。

    相关文章

      网友评论

          本文标题:Android GSON 解析 JSON

          本文链接:https://www.haomeiwen.com/subject/xuwsattx.html