Gson 最基本的使用,就是你写好了一个Java类模型,然后调一下 Gson 的基本 api 就可以实现类对象与json字符串的互转,这个我就不多说了。
但是有时候可能想定制这个互转的过程,比如根据某个字段,动态解析成不同的json模型,或者对某些数据加密等。
比如下面的栗子:

1
2
3
4
5
{
"type": 1 // 类型,可取 1,2,3。 1和2使用d字段,但2的d的值要加密;3的话使用city字段。
"d": "data, gzip compressed when type == 2",
"city":"only use when type ==3"
}

只要分别继承实现 JsonSerializer 和 JsonDeserializer,重写里面的序列化/反序列化方法,然后用GsonBuilder().registerTypeAdapter(Type type, Object typeAdapter) 注册给Gson。即可实现随意解析。