Gson概述
Gson是Google内部为了使用的一个将Java对象序列化为JSON的Java类库,从2008年5月Google开源此项目后被广泛使用。类似的项目还有FastJson、JackSon等。
Gson使用
Gson对基本数据类型的解析
1 |
|
###Gson解析对象
1 |
|
###Gson对集合类的解析
1 |
|
使用Gson的几点注意事项
eg:使用Gson解析A.class
- 如果A含有内部类且不是static的,则在解析是会忽略该内部类。
- Gson会自动加载A.class中所引用的类,并对其进行解析。(类似于克隆)
- 如果A中含有transient修饰的变量时,Gson会忽略该变量。
- 如果A中含有组合类型,Gson在双向解析时都会忽略
- 如果A中的变量赋值为null,Gson在toJson的时候会忽略该变量,在输出的json中也不会含有该字段(变量)。
- 如果A中有字段(变量)id,但json中没有,则id会初始化为对应的默认值(int 0,obj null)
如果A中没有字段(变量)id,但json中有,则生成A对象时会忽略id这个变量。 - Gson是不含有状态量的对象,因此只需要初始化一次就可以反复使用。
- Gson提供了另外一种构造器GsonBuilder类,来为用户提供需要自定义的Gson解析对象。
##Gson还提供了很多自定义的功能
- 使用@Since(versionCode)可以指定相应的版本对某个变量进行解析或者忽略。
- 还可以使用GsonBuilder的excludeFieldsWithModifiers()方法来忽略某些特殊修饰词进行修饰的成员变量的解析。
- 支持用户自定义的解析策略
更多自定义的功能,可以查看Gson的帮助文档。