【发布时间】:2014-04-02 02:40:28
【问题描述】:
给定这样的 JSON:
{
"locale" : "US",
"children" : [
{
"foo" : "bar"
},
{
"foo" : "baz"
}
]
}
像这样映射到 Java 对象:
public class Parent {
@JsonProperty public String getLocale() {...}
@JsonProperty public List<Child> getChildren() {...}
}
public class Child {
public void setLocale(String locale) {...}
@JsonProperty public String getFoo() {...}
}
如何使用顶部 (Parent) 级别的 JSON 中的值填充子实例的语言环境属性?
我认为我可以在Child 的setLocale() 方法上使用@JsonDeserialize(using=MyDeserializer.class) 来使用自定义序列化程序,但这不起作用(我怀疑是因为在子级的JSON 中没有任何价值,所以Jackson 不知道应该反序列化到 locale 属性中的任何值。
我想避免为整个 Child 类编写一个完整的自定义反序列化器,实际上它需要映射更多的数据。
【问题讨论】:
标签: java json serialization jackson deserialization