假设我在同一个文件test.json中有很多JSON对象 对于这个例子,我有3个如下。
SetTabsHeight()
现在,我想将这3个JSON对象转换为一个XML,其中包含3个elemnts字符串。 我使用org.jason的代码是:
{
"Message": {
"Id" : "111111",
"country": "ENG"
}
}
{
"Message": {
"Id" : "222222",
"country": "USA"
}
}
{
"Message": {
"Id" : "333333",
"country": "RPA"
}
}
不幸的是,它没有预期的工作方式,因为它只找到文件test.json(Id:11111)中的第一个JSON对象并将其转换为XML。
如何将同一文件中的3个JSON对象一次转换为XML字符串???
答案 0 :(得分:2)
那是因为您的输入不是有效的JSON。如果对象被包含在这样的数组中,那将是有效的:
[
{
"Message":{
"Id":"111111",
"country":"ENG"
}
},
{
"Message":{
"Id":"222222",
"country":"USA"
}
},
{
"Message":{
"Id":"333333",
"country":"RPA"
}
}
]
然后你将实例化一个数组JSONArray jsonObj = new JSONArray(content)
,它会起作用。
JSONArray jsonArray = new JSONArray(content);
JSONObject finalJSONObj = new JSONObject();
finalJSONObj.put("MessageItem", jsonArray);
String xml = XML.toString(finalJSONObj, "Messages");
System.out.println(xml);
会给你:
<Messages>
<MessageItem>
<Message>
<country>ENG</country>
<Id>111111</Id>
</Message>
</MessageItem>
<MessageItem>
<Message>
<country>USA</country>
<Id>222222</Id>
</Message>
</MessageItem>
<MessageItem>
<Message>
<country>RPA</country>
<Id>333333</Id>
</Message>
</MessageItem>
</Messages>