当前位置: 首页 > 知识库问答 >
问题:

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

裴展
2023-03-14

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

共有1个答案

禄仲渊
2023-03-14

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

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

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

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

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

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

这可以添加到< code>ObjectMapper中,如下所示:

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

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

 类似资料:
  • 我试图使用Jackson注释来重新命名序列化过程中产生的一些json标签。所有注释都编译得很好,当我运行时,除了所有Jackson注释之外,Jackson序列化工作完全被忽略。即使像@jsonignore或@jsonproperty这样的基本命令对json响应也没有影响。构建路径中的库有: 下面是我需要序列化的一个类的代码示例:

  • 有什么想法为什么@primary在这里没有被考虑在内吗?

  • 我有下面的课程。两个注释(AnnotA和AnnotB),一个类的子类。java'(带@AnnotA)及其“父”基。java'(带有@AnnotB)。 编译子对象时。java,我的注释处理器报告AnnotA,但它不报告在Base中找到的注释(AnnotB)。JAVA 安诺塔。JAVA 阿诺特。JAVA 基础JAVA 小孩JAVA MyProc。JAVA 这是编译过程及其输出,正如您所看到的,没有关于

  • 问题内容: 我的@Transactionnal注释似乎被忽略了。我对Spring容器的初始化没有任何错误。看来我的方法尚未被Spring TX框架代理。在执行服务的方法期间,JDBCTemplate会引发预期的RuntimeException。问题在于JDBC连接没有回滚,并且更改保持不变。stacktrace没有显示应该包装我的服务方法的代理的任何迹象。 编辑:添加了控制器的代码 编辑2:添加了

  • 我正在迁移一个应用程序从weblogic 10.3到weblogic 12.2。 我包括一个与其他项目共享的库。此jar包含一些带有@EJB注释的POJO,如下所示: 请注意,这只是一个POJO:它没有@无状态或@有状态注释。这个想法是,当我想使用这个服务时,我在另一个ejb-jar中用一个具体的@无状态Bean类扩展它。但是我只希望这个服务是我需要的,其他服务应该被视为POJOS。 在weblo

  • 我环顾四周,不认为这是其中任何一个的复制品: 在《野蝇》中使用杰克逊注释 杰克逊注释被忽略 野蝇和杰克逊@JsonIgnore注释 使用野蝇10并部署具有以下类的战争: 如果构造函数未被注释,我会在部署时看到该构造函数中引发的异常,但在向 REST 服务发出请求时,我看不到 方法中的异常。 我在实体上有一个注释,它不起作用,我使用的注释也不起作用 该类如下所示(包括导入,以验证我使用的是 com.