我有我的自定义类 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;
}
但是我已经有一个用于Timestamp.class
的TimestampAdapter
。我如何调用此 JsonSerializer
以在 User.class
中的“已创建”字段上使用?
最佳答案
obj.add("created", context.serialize(src.created));
如果您的 TimestampAdapter
已在 Gson 中为 Timestamp
类注册,则 JsonSerializationContext
应该自动使用它来序列化对象并返回一个 JsonElement
.
关于java - 如何从自定义 Gson JsonSerializer 调用另一个序列化程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6050869/