可以将多个子类型映射到同一个javaclass吗?
我尝试映射的Json如下所示:可以将多个子类型映射到同一个javaclass吗?,java,json,jackson,Java,Json,Jackson,我尝试映射的Json如下所示: [{ "Id":"NumberType1", "Value":65 }, { "Id":"Image", "Value":"picture.jpg" }, { "Id":"NumberType2", "Value":88 }, { "Id":"NumberType3", "Value":22 }] 我在超级类详细信息中配置了如下子类型映射: 不幸的是,NumberType2和Numb
[{
"Id":"NumberType1",
"Value":65
},
{
"Id":"Image",
"Value":"picture.jpg"
},
{
"Id":"NumberType2",
"Value":88
},
{
"Id":"NumberType3",
"Value":22
}]
我在超级类详细信息中配置了如下子类型映射:
不幸的是,NumberType2和NumberType3被映射到超类细节,而不是NumberType类,就好像上面的注释被忽略一样
博客评论表明这也许是它应该的样子。。但任何帮助都是值得的
可以将多个子类型映射到它在@JsonTypeInfo中设置为defaultImpl的类中工作的同一个java类吗
我可以更改java代码,但不能更改json格式
@JsonIgnoreProperties(ignoreUnknown = true)
@JsonTypeInfo(
use = JsonTypeInfo.Id.NAME,
include = JsonTypeInfo.As.PROPERTY,
property = "Id",
defaultImpl=Detail.class)
@JsonSubTypes({
@JsonSubTypes.Type(Image.class),
@JsonSubTypes.Type(value=NumberType.class, name="NumberType1"),
@JsonSubTypes.Type(value=NumberType.class, name="NumberType2"),
@JsonSubTypes.Type(value=NumberType.class, name="NumberType3")
})
public class Detail {
}