我正在使用Jackson将一个大的Json字符串转换成各种类和子类。
我有一个对象列表,每个对象包含一个节点对象、最后一个结果对象和一个子数组。子数组包含具有完全相同设置的对象列表。这会持续3到4层。
每个层的节点都属于不同的子类,这些子类都是从节点超类扩展而来的。我已经用以下注释注释了超类节点:
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")
@JsonSubTypes({
@JsonSubTypes.Type(value = Type1ResponseDto.class, name = "Type1"),
@JsonSubTypes.Type(value = Type2ResponseDto.class, name = "Type2"),
@JsonSubTypes.Type(value = Type3ResponseDto.class, name = "Type3"),
@JsonSubTypes.Type(value = Type4ResponseDto.class, name = "Type4"),
@JsonSubTypes.Type(value = Type5ResponseDto.class, name = "Type5")
})这似乎是可行的,因为所有的子类都得到了映射。
但是,这会以某种方式导致"type“属性被设置为null。
你知道为什么会发生这种情况吗?
发布于 2015-03-11 18:52:51
我需要添加visible=true才能显示类型属性:
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXISTING_PROPERTY, property = "type",visible = true)
@JsonSubTypes({
@JsonSubTypes.Type(value = Type1ResponseDto.class,name = "Type1"),
@JsonSubTypes.Type(value = Type2ResponseDto.class, name = "Type2"),
@JsonSubTypes.Type(value = Type3ResponseDto.class, name = "Type3"),
@JsonSubTypes.Type(value = Type4ResponseDto.class, name = "Type4")
})https://stackoverflow.com/questions/28983806
复制相似问题