杰克逊JSON:顶级段包含
问题描述:
我指的是这篇文章:convert json to object using jackson,以及StaxMan的最后一个答案,它说杰克逊1.7有可能设置配置,以便Jackson开始制作(也可能是解析?)。 JSON中的顶级标记/片段。杰克逊JSON:顶级段包含
有人可以阐明如何设置该配置,并且它仅适用于JSON生成或解析?
非常感谢!
答
您需要创建并配置ObjectMapper
以及WRAP_ROOT_VALUE
功能,例如,
ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(SerializationConfig.Feature.WRAP_ROOT_VALUE, true);
参见javadoc:
功能,可以被使能以使根值(通常JSON对象,但可以是任何类型的)的单个属性JSON对象,其中键为“根名称内包裹“,如通过注解introspector(尤其是对于使用
@XmlRootElement.name
的JAXB)或后备(非限定类名称)所确定的。功能主要用于JAXB兼容性。默认设置为false,意味着根值不被打包。
javadoc也说它还没有实现,但我可以看到它在Jackson源代码中使用,所以它可能工作正常。不过,我自己实际上并没有尝试过。
谢谢,skaffman。我尝试了一个样本,它的工作原理。但是,DeserializationConfig.Feature的相应设置似乎尚未实现。 – Anand 2011-04-21 04:54:21
正确。如果你想看到增加,请确保添加一个Jira条目和/或为一个投票(我忘记了是否存在) - 有很多竞争性的功能请求,虽然这应该很容易添加,但它不是最需要的功能(AFAIK) – StaxMan 2011-04-21 17:33:01
谢谢,StaxMan。我为此创建了http://jira.codehaus.org/browse/JACKSON-558。 – Anand 2011-04-22 06:38:53