Jackson JSON:顶级细分市场

Ana*_*and 5 json jackson

我指的是这篇文章:使用jackson将json转换为object,最后一个答案是StaxMan,它表示在Jackson 1.7中可以设置配置,以便Jackson开始生成(也可能解析?)顶级标签/ JSON中的段.

有人可以阐明如何设置该配置,它只适用于JSON生成或解析吗?

非常感谢你!

ska*_*man 4

您需要创建并配置该ObjectMapper功能WRAP_ROOT_VALUE,例如

ObjectMapper objectMapper = new ObjectMapper();
objectMapper.configure(SerializationConfig.Feature.WRAP_ROOT_VALUE, true);
Run Code Online (Sandbox Code Playgroud)

请参阅javadoc

可以启用此功能以使根值(通常是 JSON 对象,但可以是任何类型)包装在单个属性 JSON 对象中,其中 key 作为“根名称”,由注释内省器确定(尤其是对于使用 的 JAXB)@XmlRootElement.name或后备(非限定类名)。该功能主要用于 JAXB 兼容性。

默认设置为 false,表示根值不被包装。

javadoc 还说它尚未实现,但我可以看到它在 Jackson 源代码中使用,因此它可能可以正常工作。不过我自己还没有真正尝试过。

  • 正确的。如果您想看到添加该功能,请确保添加 Jira 条目和/或投票给其中一个(我忘记是否存在)——有许多相互竞争的功能请求,虽然这应该很容易添加,但它不是最需要的功能(据我所知) (2认同)
  • 反序列化语法:objectMapper.configure(DeserializationConfig.Feature.UNWRAP_ROOT_VALUE, true) (2认同)