【问题标题】:JSONTypeInfo to not ignore property in inheritance mappingJSONTypeInfo 不忽略继承映射中的属性
【发布时间】:2016-08-29 23:12:59
【问题描述】:

我正在使用以下依赖项进行 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;
}

我们有两个子类OneTwoParent 扩展。

当我在属性isOne 的帮助下序列化/反序列化时,此映射正在工作。

问题是当 JSON 转换为 jackson 类时删除了属性isOne。有什么方法不会删除该属性。它不推荐任何虚拟属性,只要我可以拥有实际属性。

【问题讨论】:

    标签: java json serialization jackson jsonserializer


    【解决方案1】:

    根据JsonTypeInfo 的文档,您可以使用visible=true

    试试这个:

    @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "isOne", visible = true)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-10
      • 1970-01-01
      • 1970-01-01
      • 2017-12-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多