我想将JSON数组转换为XML,但在转换过程中会生成无效的XML文件:
String str = "{ 'test' : [ {'a' : 'A'},{'b' : 'B'}]}";
JSONObject json = new JSONObject(str);
String xml = XML.toString(json);
我使用了Converting JSON to XML in Java
中建议的上述代码但是,如果我尝试将JSON对象转换为XML,则会提供无效的XML(错误:The markup in the document following the root element must be well-formed.
),这是
<test><a>A</a></test><test><b>B</b></test>
有人可以告诉我如何从JSON数组获取有效的XML或如何在转换为XML时包装JSON数组?
提前致谢。
答案 0 :(得分:3)
XML文档只能有一个根元素。您的XML结果实际上是:
<test>
<a>A</a>
</test>
<test>
<b>B</b>
</test>
其中第二个test
元素明显位于文档根元素结束标记之后。 XML.toString
有一个很好的重载接受对象和字符串来包含结果XML:
final String json = getPackageResourceString(Q43440480.class, "doc.json");
final JSONObject jsonObject = new JSONObject(json);
final String xml = XML.toString(jsonObject, "tests");
System.out.println(xml);
现在输出XML格式正确:
<tests>
<test>
<a>A</a>
</test>
<test>
<b>B</b>
</test>
</tests>