用杰克逊处理未知的JSON属性
问题描述:
对于将具有未知字段的json反序列化为对象,有@JsonAnySetter。用杰克逊处理未知的JSON属性
但是如果我将这样的json读入我的对象,修改一些已知字段并将其写回json会怎么样? 未知属性将丢失。
我该如何处理这种情况?是否可以映射一个对象,还是必须将数据读入JsonNode或Map?
答
解组到自定义Java类中有其优点和缺点。它给你很好的静态打字,但它很好,静态。 javadoc @JsonAnySetter
表明它与JAXB的@XmlAnyElement
类似,但与@XmlAnyElement
不同,数据对象不包含命名信息,因此它是单向街道。
如果您需要处理动态JSON流,那么您需要咬紧牙关并使用Map
或JsonNode
。
答
这是杰克逊的RFE:http://jira.codehaus.org/browse/JACKSON-292添加这样的功能。当你考虑它时总是有意义的。
+0
并且该功能本身会在1.6发布时发布 – StaxMan 2010-08-27 00:25:43
http://jira.codehaus.org/browse/JACKSON-292 – skaffman 2010-05-15 16:26:11