如何从自定义Gson JsonSerializer调用另一个序列化程序?
我有我的自定义类User
:
class User { public String name; public int id; public Address address; public Timestamp created; }
我现在正在为User.class创建一个自定义的JsonSerializer:
@Override public JsonElement serialize(User src, Type typeOfSrc, JsonSerializationContext context) { JsonObject obj = new JsonObject(); obj.addProperty("name", src.name); obj.addProperty("id", src.id); obj.addProperty("address", src.address.id); // Want to invoke another JsonSerializer (TimestampAdapter) for Timestamp obj.add("created", ???); return obj; }
但我已经有一个TimestampAdapter
用于Timestamp.class
。 如何在User.class
的“created”字段上调用此User.class
?
obj.add("created", context.serialize(src.created));
如果TimestampAdapter
在Gson中为Timestamp
类注册,则JsonSerializationContext
应自动使用它来序列化对象并返回JsonElement
。