java - JSONTypeInfo 不忽略继承映射中的属性

标签 java json serialization jackson jsonserializer

我正在使用以下依赖项进行 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 扩展的子类 OneTwo

当我在属性 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/

相关文章:

javascript - AngularJS:如何更新复选框选择/取消选择上 $scope 关联数组的键?

java - 在 Java 中将大量对象存储到磁盘的最佳方法

json - 如何对原始的、未转义的 JSON 字符串进行编码?

java - 为什么会抛出索引越界异常?

java - jPanel 的背景图像不工作

java - jackson 错误意外字符 ('}'(代码 125))

javascript - 在 AngularJS 中从 JSON 解析 $?

iphone - 带有 bool 值的 AFNetworking JSON 请求

c# - Sitecore 使用 Git autocrlf 序列化项目

java - 无法从 Java 类中找到 groovy 类