【发布时间】:2016-07-16 21:17:53
【问题描述】:
在下面的示例中,我有一个主类 - A 及其子类 - B。两者都可以用作通用类 X 中的属性。
public class A
{
@JsonProperty("primary_key")
public final String primaryKey;
@JsonCreator
A(@JsonProperty("primary_key") String primaryKey)
{
this.primaryKey = primaryKey;
}
}
public class B extends A
{
@JsonProperty("secondary_key")
public final String secondaryKey;
@JsonCreator
B(@JsonProperty("primary_key") String primaryKey, @JsonProperty("secondary_key") String secondaryKey)
{
super(primaryKey);
this.secondaryKey = secondaryKey;
}
}
public class X
{
@JsonProperty("keys")
public final A keys;
@JsonCreator
X(@JsonProperty("keys") A keys)
{
this.keys = keys;
}
}
如何使用 Jackson 多态功能将以下给定的 json 正确反序列化为各自的类:
JSON A:
{ "keys" :{
"primary_key" : "abc"
}
}
JSON B:
{ "keys" : {
"primary_key" : "abc",
"secondary_key" : "xyz"
}
}
预期结果:将键对象映射到 JSON A 的 A 类和 JSON B 的 B 类。
也请提出替代建议。
【问题讨论】:
-
İt 不清楚您的实际和预期结果是什么?
-
@YusufK。我想将第一个 json 映射到 A 类,将第二个 json 映射到 B 类。
-
我想你想从每个给定的 json 创建对象?
-
是的@YusufK。我想从给定的 json 创建对象。