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

标签 java json serialization 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;
}

但是我已经有一个用于Timestamp.classTimestampAdapter。我如何调用此 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/

相关文章:

java - 使用 java 从字符串中查找 mathml

Java 过滤器性能问题

mysql - 如何使用 MySQL 或 R 获取 JSON 是否包含特定文本

javascript - Ember/Handlebars 提供 [object Object] 而不是来自 JSON 对象的字符串

java - 打印机如何不覆盖

java - Java中的简单下拉菜单

ios - 从核心数据创建 JSON

javascript - 在 JS 中读取/写入 float 字节

asp.net-core - 使用当前版本的 System.Text.Json.JsonSerializer 序列化 DataSet

java - 包含多个对象的 ArrayList 的序列化,不保存对象状态