gpt4 book ai didi

java - 将多个 JSON 对象从一个文件转换为一个 XML 文件,其中包含与 JSON 一样多的元素

转载 作者:行者123 更新时间:2023-12-02 02:40:24 26 4
gpt4 key购买 nike

假设我在同一个文件 test.json 中有许多 JSON 对象对于这个例子,我有 3 个,如下所示。

{
"Message": {
"Id" : "111111",
"country": "ENG"
}
}
{
"Message": {
"Id" : "222222",
"country": "USA"
}
}
{
"Message": {
"Id" : "333333",
"country": "RPA"
}
}

现在,我想将这 3 个 JSON 对象转换为一个 XML,其中包含 3 个元素作为字符串。 我使用 org.jason 的代码是:

 String content = new String(Files.readAllBytes(Paths.get("..\\myFolder\\Tests\\test.json")));
String xml = XML.toString(new JSONObject(content));

不幸的是,它无法按预期方式工作,因为它仅从文件 test.json (Id:11111) 中找到第一个 JSON 对象并将其转换为 XML。

如何将同一个文件中的 3 个 JSON 对象一次性转换为 XML 字符串???

最佳答案

那是因为您的输入不是有效的 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>

关于java - 将多个 JSON 对象从一个文件转换为一个 XML 文件,其中包含与 JSON 一样多的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45586592/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com