【发布时间】:2016-02-10 09:06:41
【问题描述】:
我正在将原始 XML 输入转换为 JSON,但我遇到了所需的输出结构问题(列表显示不正确)。导入的 XML 结构可能与下面的示例不同,因此使用 POJO 并简单地进行注释是不可行的。下面的示例 XML 输入:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<gang>
<id>435dfb3f-1129-4375-b0f9-09955d7434cc</id>
<name>Brew's Crews</name>
<members>
<member>
<member>d3433b1c-a93d-4af1-b698-89fcd921e48d</member>
<dateJoined/>
</member>
<member>
<member>8ac9f5bc-5710-4cb1-a75d-839e211f0286</member>
<dateJoined/>
</member>
</members>
<anthem/>
<logo>http://localhost:8080/cloud/master-index-record/raw/58338b91-2390-44a7-ac31-581c5dd921e1</logo>
</gang>
我正在使用 Jackson 将 XML 转换为 JSON(XML 已经是一个字符串并由“结果”变量表示)
XmlMapper xmlMapper = new XmlMapper();
Object entry = xmlMapper.readValue(result, Object.class);
ObjectMapper jsonMapper = new ObjectMapper();
return jsonMapper.writeValueAsString(entry);
生成以下 JSON:
{
"id": "435dfb3f-1129-4375-b0f9-09955d7434cc",
"name": "Brew's Crews",
"members": {
"member": {
"member": "8ac9f5bc-5710-4cb1-a75d-839e211f0286",
"dateJoined": null
}
},
"anthem": null,
"logo": "http://localhost:8080/cloud/master-index-record/raw/58338b91-2390-44a7-ac31-581c5dd921e1"
}
我的问题是“成员”元素应该分组在 JSON 数组中,如下所示:
"members":[{"member":blah,"dateJoined":null},{"member":blah2,"dateJoined":null}]
但它们不是......是否需要对 XML 映射器或对象映射器进行特定配置才能实现这些预期结果?
【问题讨论】: