java - 解析 Java JSON 时的动态 @JsonSubTypes

标签 java json

我有一个涉及动态 @JsonSubTypes 贡献者的系统,我正在尝试弄清楚如何重构我的代码(下面的示例)以不使用 @JsonSubTypes 注释而是动态地或在运行时提供这些值。有谁知道这是否可能?

   @JsonSubTypes({
    @JsonSubTypes.Type(value = Dog.class, name = "dog"),
    @JsonSubTypes.Type(value = Cat.class, name = "cat")
})

最佳答案

对此进行了研究,可以采用多种不同的方法,最有意义的方法是在将具有不同子类实现的基类上声明此注释。

@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS, include = JsonTypeInfo.As.PROPERTY, property = "@class")

这将在序列化的 JSON 中添加一个“@class”元字段,然后在反序列化时使用该元字段来确定正在使用的子类。唯一的缺点是在编写手动 JSON 时必须包含该字段。

关于java - 解析 Java JSON 时的动态 @JsonSubTypes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64688608/

相关文章:

java - 如何将动态JSON解析为JavaBean

java - 转换回 Java 对象时出现 MongoDB "NumberLong/$numberLong"问题

json - 通过Logstash将哈希数组转换为简单哈希

java - 使用Java程序在cmd中打印阿尔巴尼亚语字符

java - 在sl4j的java中的每个类中初始化记录器

java - 如何在 Swing 应用程序中使用 Java 获取 macOS Mojave 风格的黑暗模式?

java - 如何从两个 DayOfWeeks 之间获取 DayOfWeek 的列表

java - 取消部署/部署 war 后的 Tomcat 使 NoClassDefFoundError : org. apache.xml.serializer.TreeWalker

javascript - 如何使用 javascript 或 jquery 获取新表单输入的更新 json 文件?

json - ValidationException错误中的错误