XML转换成JSON对象的Android

问题描述 投票:19回答:5

我有一个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?

android xml json libraries
5个回答
67
投票

你可以试试这种方式为好。我曾尝试和测试它自己。

第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字符串 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"}}


6
投票

我刚刚发布的Android Studio中的“XML到JSON”库。这是很容易的gradle与整合,使用简单,和可配置的。

XmlToJson可以在GitHub上:

https://github.com/smart-fun/XmlToJson

请享用!


2
投票

我建议你使用json-lib,增加JSON support to any Java program库。 JSON-lib中可以采取XML并将其转换成一个JSON对象。

你可以得到JSON-lib的here

例如。

String xml = "your xml string";                
XMLSerializer xmlSerializer = new XMLSerializer(); 
JSON json = xmlSerializer.read( xml );

0
投票

我们可以将XML转换为杰克逊对象,然后可以使用杰克逊JSON。

我试图XmlPull支持添加到杰克逊XML。发现这里的分叉项目:

https://github.com/finvu/jackson-dataformat-xml

目前,仅支持2.9.6版本。 (克隆分支杰克逊DATAFORMAT-XML-2.9.6-XmlPull)

对不起,我不能由于时间的限制提供详细的文件。如果你有git的知识和Maven拉一个特定的分支,构建JAR,那么它应该是比较容易的。

杰克逊XML文档可以在杰克逊XML git的家在这里页面上找到:

https://github.com/finvu/jackson-dataformat-xml/tree/jackson-dataformat-xml-2.9.6-XmlPull


0
投票

Underscore-java具有静态方法U.xmlToJson(xml)。我是这个项目的维护者。 Live example

import com.github.underscore.lodash.U;

U.xmlToJson("<a>\n  <b></b>\n  <b></b>\n</a>");
© www.soinside.com 2019 - 2024. All rights reserved.