我有自定义课程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
。如何在JsonSerializer
中的“已创建”字段中调用此User.class
?
答案 0 :(得分:13)
obj.add("created", context.serialize(src.created));
如果您的TimestampAdapter
已在Gson注册了Timestamp
课程,JsonSerializationContext
应自动使用它来序列化对象并返回JsonElement
。