我正在使用以下依赖关系进行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;
}
我们有两个子类One
和Two
Parent
扩展。
当我在属性isOne
的帮助下序列化/反序列化时,此映射工作正常。
但问题是将JSON转换为类jackson 删除属性isOne
。有没有办法不删除该属性。只要我能有实际属性,它就不推荐任何虚拟财产。
答案 0 :(得分:2)
根据JsonTypeInfo的文档,您可以使用visible=true
试试这个:
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "isOne", visible = true)