美文网首页
Android Gson 使用

Android Gson 使用

作者: 十二书 | 来源:发表于2018-02-08 20:14 被阅读0次

你真的会用Gson吗?Gson使用指南(一) 这篇帖子写得尤为详细
Gson 中文指南 (非官方)
https://github.com/google/gson/blob/master/UserGuide.md (官方)

 public String toJson(Object src)
 public String toJson(JsonElement jsonElement)
 public <T> T fromJson(String json, Class<T> classOfT)
 public <T> T fromJson(String json, Type typeOfT)

1. 基本用法

http://blog.csdn.net/lrenjun/article/details/7372003

Gson是google开发的json格式解析包,其特点是在解析json之前必须知道所传输的json数据格式,并定义一系列层次结构与json层次结构相同的类。

{  
 "name":"relin",  
 "sex":"male",  
 "age":26  
}  
class Person {  
 public String name;  
 public String sex;  
 public int age;  
}  
  • 如果预先定义的类中不包含json中的某个属性,则该属性就不会被解析出来,但是其他成员仍然能正常解析
  • 命名必须完全相同,否则不会被正常解析
  • 类的成员变量可以是public,也可以是private

a. json String to object

String str = "{\"name\":\"name0\",\"age\":0}";  
Gson gson = new Gson();  
Person person= gson.fromJson(str, Person.class); 

b. object to json String

Gson gson = new Gson();  
String str = gson.toJson(persons);

c. List、Map 与 json 的转化

http://blog.csdn.net/onlyonecoder/article/details/16907713

List 转化为 json 会转为数组;
Map 转化为 json 就是一个包含若干映射的对象。

Gson gson=new Gson();  
List<Person> rs=new ArrayList<Person>();  
Type type = new TypeToken<ArrayList<Person>>() {}.getType();  
rs=gson.fromJson(arrayJsonStr, type);  

Map<String, Person> persons = gson.fromJson(mapJsonStr, new TypeToken<Map<String, Person>>() {}.getType());

2. @SerializedName 注解

http://blog.csdn.net/jiayi_yao/article/details/51057267

@SerializedName 允许我们在 json 中使用与 java 类中对应成员变量不同的名字。

class Person {  
    @SerializedName("name")
    public String mName = "";  
    public String sex;  
    public int age;  
}  

这样再使用Gson解析的时候就会将 name 对应的值赋值到 mName 属性上,同样的如果我们要使用 Gson 将 Person 生成 json 字符串的时候,也会将 mName 的名字生成 name 。这样就解决了java对象里属性名跟json里字段名不匹配的情况了。

当然,gson 中还有其他注解可以使用。JSON解析类库之Gson(3) --- Gson注解

3. 其他

http://blog.csdn.net/a249900679/article/details/51386509

new GsonBuilder().serializeNulls().disableHtmlEscaping().create();
new GsonBuilder().registerTypeAdapter(Id.class, new IdTypeAdapter())//自定义类型适配器  
new GsonBuilder().enableComplexMapKeySerialization()//Map类型  
new GsonBuilder().setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE)//会把字段首字母大写  
new GsonBuilder().setVersion(1.0)//自定义版本号  

相关文章

  • Andriod中Gson使用

    Gson使用 参考你真的会用Gson吗?Gson使用指南 在Android中使用Gson,先在Compile中加入...

  • Android 库 Gson

    【Android 库 Gson】 引用: ★Gson 解析教程★★★ Gson的入门使用Gson全解析(上)-Gs...

  • Gson基本用法

    Gson是谷歌官方推出的 JSON 包。 一. 导入Android Studio工程 二. 序列化 使用Gson将...

  • Json解析,上了GsonFormat的当!

    对于android中的json解析相信不少人,都是采用了Gson.既然使用了Gson,肯定有人使用了GsonFor...

  • Gson序列化那些事

    Android开发中会经常解析json,使用retrofit框架常用gson解析json。Gson有一定的容错机制...

  • Android Gson 使用

    你真的会用Gson吗?Gson使用指南(一) 这篇帖子写得尤为详细Gson 中文指南 (非官方)https://g...

  • 12.Gson

    Gson是谷歌发布的一个json解析框架.android studio使用:

  • Android Gson使用详解

    Android Gson使用详解(出处: 安卓巴士 - 安卓开发 - Android开发 - 安卓 - 移动互联网门户)

  • Android中Gson的使用

    Android中Gson的使用 1 简介 Gson是一个Java库,作用是将Java对象转换成它对应的JSON表示...

  • Gson使用指南 2017-08-15

    Gson使用指南系列其它文章你真的会用Gson吗?Gson使用指南(一)你真的会用Gson吗?Gson使用指南(二...

网友评论

      本文标题:Android Gson 使用

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