我有一个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?
答案 0 :(得分:65)
您也可以尝试这种方式。我自己试过并测试了它。
第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"}}
答案 1 :(得分:6)
我刚刚发布了一个&#34; XML到JSON&#34;适用于Android Studio的库。 它易于与gradle集成,易于使用和可配置。
XmlToJson 可在GitHub上找到:
https://github.com/smart-fun/XmlToJson
享受!
答案 2 :(得分: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 );
答案 3 :(得分: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>");
答案 4 :(得分:0)
您可以将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 git主页上找到Jackson xml文档:
https://github.com/finvu/jackson-dataformat-xml/tree/jackson-dataformat-xml-2.9.6-XmlPull