【发布时间】:2020-07-18 16:58:44
【问题描述】:
我有 XML,它可以是任何结构,如下所示。因此没有用于实例化的 POJO 类。如您所见,我有嵌套数组(在这种情况下,reservations 是两个reservation 的数组,每个reservation 都有简单的元素和rooms 的数组-但这只是示例-可能还有更多数组和嵌套数组)。
<reservations>
<reservation>
<id>1318504</id>
<add_date>2020-12-10 12:48:09</add_date>
<rooms>
<room>
<id>28902</id>
<floor>2</floor>
</room>
<room>
<id>28903</id>
<floor>3</floor>
</room>
</rooms>
</reservation >
<reservation>
<id>1318501</id>
<add_date>2021-05-07 07:47:05</add_date>
<rooms>
<room>
<id>5</id>
<floor>25</floor>
</room>
<room>
<id>6</id>
</room>
</rooms>
</reservation>
</reservations>
我需要将其转换为 Json 为:
{
"reservations":[
{
"id":"1318504",
"add_date":"2020-12-10 12:48:09",
"rooms":[
{
"id":"28902",
"floor":2
},
{
"id":"28903",
"floor":3
}
]
},
{
"id":"1318501",
"add_date":"2021-05-07 07:47:05",
"rooms":[
{
"id":"5",
"floor":25
},
{
"id":"6"
}
]
}
]
}
我已经阅读了很多关于将 XML 转换为 Json 的主题。我试过类似的东西:
-
json.org
JSONObject xmlJSONObj = XML.toJSONObject(xmlString); -
杰克逊
JsonNode node = new XmlMapper().readTree(xmlContent); -
下划线-java
String jsonString = U.xmlToJson(xmlContent)
等等。但结果,最好的情况是:
{
"reservations":{
"reservation":[
{
"rooms":{
"room":[
{
"id":28902,
"floor":2
},
{
"id":28903,
"floor":3
}
]
},
"add_date":"2020-12-10 12:48:09",
"id":1318504
},
{
"rooms":{
"room":[
{
"id":5,
"floor":25
},
{
"id":6
}
]
},
"add_date":"2021-05-07 07:47:05",
"id":1318501
}
]
}
}
我不需要像 reservation 和 room 这样的节点。你能帮我解决这个问题吗?我可以使用 xml 或 json 进行操作,但没有这些节点的表单是我的目标。
【问题讨论】:
-
Underscore-java库有一个静态方法U.xmlToJson(xml)。
-
@ValentynKolesnikov 在我看来这种方法行不通。你能告诉我如何在我的情况下使用它吗?
-
它将转换成这个 json: { "reservations": { "reservation": [ { "id": "1318504", "add_date": "2020-12-10 12:48:09 ”,“房间”:{“房间”:[{“id”:“28902”,“地板”:“2”},{“id”:“28903”,“地板”:“3”}]}} , { "id": "1318501", "add_date": "2021-05-07 07:47:05", ... }
-
请再次阅读我在主题中的问题...
-
我添加了解决方案。
标签: java json xml-parsing xml-to-json underscore-java