Jackson多态类型转换在使用后删除该属性

时间:2014-06-10 12:52:16

标签: java json jackson

我正在尝试使用Jackson自动将我的JSON有效负载解析为子类型

一切正常工作,对象被解析为正确的子类型。但是在过程结束时删除了用于区分的属性。

@JsonTypeInfo(
    use = JsonTypeInfo.Id.NAME,
    include = JsonTypeInfo.As.PROPERTY,
    property = "type")
@JsonSubTypes({
    @Type(value = MySubClass.class, name = "type1") })

在这种情况下,MySubClass实例中的属性“type”为null。

我如何告诉杰克逊保持数据不变。

感谢。

1 个答案:

答案 0 :(得分:0)

是;默认情况下,类型信息被视为元数据,而不是要向POJO公开的数据;类似于Java类型信息与实际属性的区别(尽管可通过getClass()访问)。

但是如果你想使用@JsonTypeInfo(visible=true),你可以公开类型鉴别器。