假设某个第三方库中有一个类层次结构。其中一个类具有 @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);
现在 prop
和 prop2
都被序列化,而不仅仅是 prop
。
关于java - 忽略@JsonValue注释而不进行子类化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59458439/