我使用org.json将json字符串转换为xml,将xml转换回json。我得到了json字符串的预期响应,它只有键值对,但是包含jsonarray对象的json字符串,返回值与输入不同? 在我使用的代码下面,
import org.json.JSONObject;
import org.json.XML;
String jsonStr ="........";
System.out.println("The JSON Raw Text :"+ jsonStr);
JSONObject jObject = new JSONObject(jsonStr);
String xml = org.json.XML.toString(jObject);
JSONObject xmlJSONObj = XML.toJSONObject(xml);
String jsonConvertString = xmlJSONObj.toString();
System.out.println("JSON text converted : "+jsonConvertString);
什么是错误或将json字符串转换为xml并返回json的最佳方法是什么?
答案 0 :(得分:0)
如this blog中所述,您似乎遇到了问题。
简而言之:XML.toString()
不会生成XML文档。当您使用JSONArray时,此方法生成的xml字符串没有根元素。
因此,如果您打算将内容写入XML文件,我建议您使用更严格的API,例如org.w3c.dom.*
。这将生成一个可以转储到文件的VALID xml文档。
或者更简单的方法是使用像"<root>" + org.json.XML.toString(jArray) + "</root>"
这样的东西,这样你就有了一个根元素。这可能会被XML.toJSONObject()
很好地解析(并且正如您所期望的那样)。