如何从自定义Gson JsonSerializer调用另一个序列化程序?

Jon*_*nas 13 java serialization json jsonserializer gson

我有我的自定义类User:

class User {
    public String name;
    public int id;
    public Address address;
    public Timestamp created;
}
Run Code Online (Sandbox Code Playgroud)

我现在正在为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;
}
Run Code Online (Sandbox Code Playgroud)

但我已经有了一个TimestampAdapter我用的Timestamp.class.我怎样才能调用它JsonSerializer来在"创建"字段中使用User.class

Col*_*inD 13

obj.add("created", context.serialize(src.created));
Run Code Online (Sandbox Code Playgroud)

如果您TimestampAdapter在Gson中注册了Timestamp该类,JsonSerializationContext则应自动使用它来序列化该对象并返回一个JsonElement.