2014-10-09 50 views
0

我正在使用org.json將json字符串轉換爲xml和xml返回到json。我得到了只有鍵值對的json字符串的預期響應,但是包含jsonarray對象的json字符串包含的返回值與輸入不同? 下面我使用的代碼,在將JSON字符串轉換爲XML和XML時返回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

您可以先在[google](http://www.google.com)中查找它,這裏是一個鏈接http://stackoverflow.com/questions/2916495/libraries-to-convert-xml-into -json和 - 反之亦然 – StackFlowed 2014-10-09 13:27:15

回答

0

看起來您正面臨問題,如this blog中所述。

簡而言之:XML.toString()不生成XML文檔。當您使用JSONArray時,從此方法生成的xml字符串沒有根元素。

因此,如果您打算將內容寫入XML文件,我會建議您使用更嚴格的API,例如org.w3c.dom.*。這將生成一個有效的xml文檔,可以將其轉儲到文件中。

或者更簡單的方法是使用類似"<root>" + org.json.XML.toString(jArray) + "</root>"的東西,這樣你就有了一個根元素。這可能會被解析得非常好(並且如您所期望的)XML.toJSONObject()