java - 忽略@JsonValue注释而不进行子类化

标签 java json jackson jackson-databind

假设某个第三方库中有一个类层次结构。其中一个类具有 @JsonValue 注释。它只会导致一个字段的序列化/反序列化。是否可以忽略 @JsonValue 注释而不进行子类化并序列化所有对象字段?

最佳答案

您可以定义 MixIn 并通过属性或 getter 覆盖 @JsonValue - 取决于在第三方库中设置注释的位置。

假设我们有一个带有 @JsonValue 注释成员 prop 的类 Pojo:

class Pojo {
    @JsonValue
    private String prop;
    private String prop2;
    // getters and setters
}

然后我们定义一个抽象 MixIn 类,如下所示,覆盖特定的成员或方法:

abstract class MixIn {
    @JsonValue(false) // either annotating members
    private String prop;

    @JsonValue(false) // or annotating methods
    abstract String getProp();
}

可以将其添加到 ObjectMapper 中,如下所示:

objectMapper.addMixIn(Pojo.class, MixIn.class);

现在 propprop2 都被序列化,而不仅仅是 prop

关于java - 忽略@JsonValue注释而不进行子类化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59458439/

相关文章:

java - 如何将没有键名的JSON数据解析为Java类结构?

java - 存储在 SD 卡中的安全视频内容,其他应用程序无法访问它

.net - 在 VB.NET 中解析 JSON

json - jslt访问for表达式中的父字段

java - 如何用 spring batch 解析 json 文件?

java - RESTEasy/Jackson 未将分层 POJO 正确序列化为 JSON

java - 从自定义 Jackson Deserializer 中的父节点读取字段

java - 如何在spring bean配置文件中获取tomcat中的Server Home目录路径

java - XmlPullParser - 以 XML 字符串形式获取节点内容

java - Grails 2.3 数据库迁移不起作用?