2014-10-09 2 views
0

Я использую org.json для преобразования строки json в xml и xml обратно в json. Я получаю ожидаемый ответ для строки json, которая имеет только пары ключевых значений, но если строка json содержит объекты jsonarray, возвращаемое значение отличается от ввода? Ниже кода я использовал,Предоставление неправильных значений при преобразовании строки 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

ответ

0

Похоже, вы столкнулись с проблемой, как описано в this blog.

Вкратце: XML.toString() НЕ производит XML-документ. Когда вы используете JSONArray, созданная строка xml из этого метода не имеет корневого элемента NO.

Поэтому, если вы планируете записать содержимое в файл XML, я рекомендую вам использовать более строгий API, такой как org.w3c.dom.*. Это приведет к созданию документа VALID xml, который можно сбрасывать в файл.

Или более простой способ использовать что-то вроде "<root>" + org.json.XML.toString(jArray) + "</root>", так что у вас есть корневой элемент. Это может быть проанализировано довольно хорошо (и, как вы ожидаете) на XML.toJSONObject().

Смежные вопросы