[英]Convert JSON to XML in Java with different JSON object names
我有这个JSON字符串:
{
"purpose": {
"caption": "Purpose",
"value": "Buy a goat"
},
"goatValue": {
"caption": "Goat value",
"value": "4500000"
},
"loanAmount": {
"caption": "Loan amount",
"value": "5000000"
},
"childrenInfo": [{
"gender": {
"caption": "Gender",
"value": "Boy"
},
"provider": {
"caption": "Provider",
"value": "Yes"
},
"age": {
"caption": "Age",
"value": "5"
}
},
{
"gender": {
"caption": "Gender",
"value": "Girl"
},
"provider": {
"caption": "Provider",
"value": "No"
},
"age": {
"caption": "Age",
"value": "17"
}
}]
}
我想将其转换为以下xml结构:
<Row>
<caption>Purpose</caption>
<value>Buy a goat</value>
</Row>
<Row>
<caption>Goat value</caption>
<value>4500000</value>
</Row>
<Row>
<caption>Loan amount</caption>
<value>5000000</value>
</Row>
<Row>
<caption>Gender</caption>
<value>Boy</value>
</Row>
<Row>
<caption>Provider</caption>
<value>Yes</value>
</Row>
<Row>
<caption>Age</caption>
<value>5</value>
</Row>
<Row>
<caption>Gender</caption>
<value>Girl</value>
</Row>
<Row>
<caption>Provider</caption>
<value>No</value>
</Row>
<Row>
<caption>Age</caption>
<value>17</value>
</Row>
假定可以使用任何JSON对象名称(在这种情况下,为山羊值和借贷金额),因为无法知道JSON对象的名称。 我尝试使用Jackson ObjectMapper并将JSON字符串映射到
HashMap<String, HashMap<String, String>>
,但现在我不知道该怎么办。
有什么建议么?
您需要将JSON作为Map<String, Object>
读取Map<String, Object>
并创建一个由标题和值字段组成的Row
对象。 之后,您需要遍历地图中的条目以区分地图和地图列表。 对于地图,这些地图需要转换为Row对象并添加到Row对象的集合中。 对于地图列表,需要在内部循环中完成相同的操作。 迭代完成后,需要将行添加到包装对象,然后可以使用XmlMapper将其转换为xml。
我已经创建了适用于您的示例的要点: https : //gist.github.com/santmatthew/8f85399ad86fb45fec0be0c5df1a9825
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.