Преобразование XML в объект JSON в Android
У меня есть XML-строка, как показано ниже:
<s:Envelope
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><Response
xmlns="http://tempuri.org/"><UserResult><Users xmlns=""><User>
<Message>Success</Message>
<UserId>213213213</UserId>
<FullName>Abc</FullName>
<Roles>
<Role>
<RoleId>23232333</RoleId>
<RoleName>Salesperson</RoleName>
</Role>
</Roles>
</User>
</Users>
</UserResult></Response>
</s:Body>
</s:Envelope>
Можно ли преобразовать XML в JSON?
Ответы
Ответ 1
Вы также можете попробовать это. Я сам пробовал и тестировал.
Шаг 1: Скачайте java-json.jar
Шаг 2: добавьте это в папку /libs
вашего проекта, а затем добавьте путь сборки.
Шаг 3: Затем используйте его следующим образом
-
Импорт для поиска
import org.json.JSONException;
import org.json.JSONObject;
import org.json.XML;
-
Пример строки
String sampleXml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>"
+ "<mobilegate>"
+"<timestamp>232423423423</timestamp>"
+ "<txn>" + "Transaction" + "</txn>"
+ "<amt>" + 0 + "</amt>"
+ "</mobilegate>";
-
Json String
JSONObject jsonObj = null;
try {
jsonObj = XML.toJSONObject(sampleXml);
} catch (JSONException e) {
Log.e("JSON exception", e.getMessage());
e.printStackTrace();
}
Log.d("XML", sampleXml);
Log.d("JSON", jsonObj.toString());
Вывод:
XML:
<?xml version="1.0" encoding="utf-8"?><mobilegate><timestamp>232423423423</timestamp><txn>Transaction</txn><amt>0</amt></mobilegate>
JSON:
{"mobilegate":{"timestamp":232423423423,"amt":0,"txn":"Transaction"}}
Ответ 2
Я только что выпустил библиотеку "XML to JSON" для Android Studio. Его легко интегрировать с Gradle, просто использовать и настраивать.
XmlToJson доступен на GitHub:
https://github.com/smart-fun/XmlToJson
наслаждаться!
Ответ 3
Я предлагаю вам использовать json-lib
, библиотеку, которая добавляет JSON support to any Java program
. json-lib может принимать XML и преобразовывать его в объект JSON.
Вы можете получить json-lib здесь
Eg.
String xml = "your xml string";
XMLSerializer xmlSerializer = new XMLSerializer();
JSON json = xmlSerializer.read( xml );
Ответ 4
В Underscore-java есть статический метод U.xmlToJson(xml)
. Я поддерживаю проект. Живой пример
import com.github.underscore.lodash.U;
U.xmlToJson("<a>\n <b></b>\n <b></b>\n</a>");
Ответ 5
Вы можете конвертировать XML в объекты Джексона, а затем можете использовать Джексона JSON.
Я попытался добавить поддержку XmlPull для Jackson XML. Найдите разветвленный проект здесь:
https://github.com/finvu/jackson-dataformat-xml
В настоящее время поддерживается только для версии 2.9.6. (клонировать ветку jackson-dataformat-xml-2.9.6-XmlPull)
Извините, я не могу предоставить подробную документацию из-за нехватки времени. Если у вас есть знания git и maven, чтобы вытащить определенную ветку и собрать jar, то это должно быть относительно просто.
Документацию по Jackson xml можно найти на домашней странице jackson xml git здесь:
https://github.com/finvu/jackson-dataformat-xml/tree/jackson-dataformat-xml-2.9.6-XmlPull