【问题标题】:Giving incorrect values when converting JSON string to XML and XML back to JSON string将 JSON 字符串转换为 XML 并将 XML 转换回 JSON 字符串时给出不正确的值
【发布时间】:2014-10-09 13:25:42
【问题描述】:

我正在使用 org.json 将 json 字符串转换为 xml 并将 xml 转换回 json。我得到了只有键值对的 json 字符串的预期响应,但是如果 json 字符串包含 jsonarray 对象,则返回值与输入不同? 在我使用的代码下方,

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

【问题讨论】:

标签: java xml json


【解决方案1】:

您似乎遇到了this blog 中所述的问题。

简而言之:XML.toString() 不会生成 XML 文档。当您使用 JSONArray 时,此方法生成的 xml 字符串没有根元素。

因此,如果您打算将内容写入 XML 文件,我建议您使用更严格的 API,例如 org.w3c.dom.*。这将生成一个有效的 xml 文档,可以转储到文件中。

或者更简单的方法是使用"<root>" + org.json.XML.toString(jArray) + "</root>" 之类的东西,这样你就有了一个根元素。 XML.toJSONObject() 可能会很好地解析(如您所料)。

【讨论】:

    猜你喜欢
    • 2012-10-26
    • 2016-03-17
    • 1970-01-01
    • 1970-01-01
    • 2019-10-29
    • 2017-05-04
    • 2021-09-23
    • 1970-01-01
    • 2015-11-16
    相关资源
    最近更新 更多