用杰克逊处理未知的JSON属性

问题描述:

对于将具有未知字段的json反序列化为对象,有@JsonAnySetter。用杰克逊处理未知的JSON属性

但是如果我将这样的json读入我的对象,修改一些已知字段并将其写回json会怎么样? 未知属性将丢失。

我该如何处理这种情况?是否可以映射一个对象,还是必须将数据读入JsonNode或Map?

+0

http://jira.codehaus.org/browse/JACKSON-292 – skaffman 2010-05-15 16:26:11

解组到自定义Java类中有其优点和缺点。它给你很好的静态打字,但它很好,静态。 javadoc @JsonAnySetter表明它与JAXB的@XmlAnyElement类似,但与@XmlAnyElement不同,数据对象不包含命名信息,因此它是单向街道。

如果您需要处理动态JSON流,那么您需要咬紧牙关并使用MapJsonNode

这是杰克逊的RFE:http://jira.codehaus.org/browse/JACKSON-292添加这样的功能。当你考虑它时总是有意义的。

+0

并且该功能本身会在1.6发布时发布 – StaxMan 2010-08-27 00:25:43