将JSON字符串转换为XML和XML回到JSON字符串时给出不正确的值

时间:2014-10-09 13:25:43

标签: java xml json

我使用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的最佳方法是什么?

1 个答案:

答案 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()很好地解析(并且正如您所期望的那样)。