原文链接:Gson Advanced — Customizing (De)Serialization via @JsonAdapter
原文出自:Norman Peitek
译者:無名無
之前几篇文章我们介绍了如何使用 Gson 来自定义(反)序列化和自定义实例创建。使用这些都需要依赖 GsonBuilder 的创建过程,还是有些复杂的,在 Gson 2.7 以后引入一个注解来有效的减少代码即 @JsonAdapter,本文就来介绍下 @JsonAdapter 使用。
@JsonAdapter 注解
注意 @JsonAdapter 是在 Gson 2.7 及以后版本才有。
我们已经了解了来自定义(反)序列化的一些流程,就像下面的代码,一样必须遵循这样的规则才可以:
GsonBuilder gsonBuilder = new GsonBuilder();
Type merchantListType = new TypeToken<List<Merchant>>() {}.getType();
JsonSerializer<List<Merchant>> serializer = ...; // implementation detail
gsonBuilder.registerTypeAdapter(merchantListType, serializer);
Gson customGson = gsonBuilder.create();
String customJSON = customGson.toJson(subscription);
就差一个 JsonSerializer 接口的实现类就齐全了。
自定义序列化
来尝试另一种方式,创建一个 JsonSerializer 的实现类 MerchantListSerializer,注意