Java 忽略@JsonValue注释而不进行子类化
让我们假设在某个第三方库中有一个类层次结构。其中一个类具有@JsonValue注释。它只会导致一个字段的序列化/反序列化。是否可以忽略@JsonValue注释而不进行子类化并序列化所有对象字段?您可以定义一个MixIn并通过属性或getter重写@JsonValue -取决于注释在第三方库中的设置位置 假设我们有一个带有@JsonValue注释的成员prop的类Pojo: 然后,我们定义一个抽象的MixIn类,如下所示,覆盖特定的成员或方法:Java 忽略@JsonValue注释而不进行子类化,java,json,jackson,jackson-databind,Java,Json,Jackson,Jackson Databind,让我们假设在某个第三方库中有一个类层次结构。其中一个类具有@JsonValue注释。它只会导致一个字段的序列化/反序列化。是否可以忽略@JsonValue注释而不进行子类化并序列化所有对象字段?您可以定义一个MixIn并通过属性或getter重写@JsonValue -取决于注释在第三方库中的设置位置 假设我们有一个带有@JsonValue注释的成员prop的类Pojo: 然后,我们定义一个抽象的MixIn类,如下所示,覆盖特定的成员或方法: abstract class 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。您可以定义一个MixIn并通过属性或getter重写@JsonValue -取决于注释在第三方库中的设置位置 假设我们有一个带有@JsonValue注释的成员prop的类Pojo: 然后,我们定义一个抽象的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