我正在使用以下依赖项进行 JSON 序列化/反序列化
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.7.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.7.4</version>
</dependency>
我有继承映射。
以下是Parent
类。
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "isOne")
@JsonSubTypes({ @Type(value = One.class, name = "true"), @Type(value = Two.class, name = "false") })
public class Parent extends AbstractValueObject {
private Boolean isOne;
}
我们有两个由 Parent
扩展的子类 One
和 Two
。
当我在属性 isOne
的帮助下进行序列化/反序列化时,此映射有效。
但是问题是当 JSON 转换为类 jackson 时删除了属性 isOne
。有什么方法可以不删除该属性。只要我能拥有实际的属性(property),它就不推荐任何虚拟属性(property)。
最佳答案
根据 JsonTypeInfo 的文档您可以使用 visible=true
试试这个:
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "isOne", visible = true)
关于java - JSONTypeInfo 不忽略继承映射中的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37029014/