Convert XML to JSON object in Android

我的未来我决定 提交于 2019-11-26 08:07:37

问题


I have an XML string as shown below:

<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>

Is it possible to convert XML to JSON?


回答1:


You can try this way as well. I have tried and tested it myself.

Step 1 : Please Download the java-json.jar

Step 2: Add this to /libs folder of your project then add to build path.

Step 3: Then use it as follows

  • Imports to look for

    import org.json.JSONException;
    import org.json.JSONObject;
    import org.json.XML;
    
  • Sample string

    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());
    

Output:

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:


I just released a "XML to JSON" Library for Android Studio. It is easy to integrate with gradle, simple to use, and configurable.

XmlToJson is available on GitHub:

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

enjoy!




回答3:


I would suggest you to use json-lib, a library which adds JSON support to any Java program. json-lib can take XML and convert it into a JSON object.

You can get json-lib here

Eg.

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



回答4:


You can convert xml to jackson objects, and then can use jackson json.

I have attempted to add XmlPull support to jackson xml. Find the forked project here:

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

Currently, only supported for version 2.9.6. (clone the branch jackson-dataformat-xml-2.9.6-XmlPull)

Sorry, I am not able to provide detailed documentation due to time constraints. If you have knowledge of git and maven to pull a specific branch and build the jar, then it should be relatively easy.

Jackson xml documentation can be found on the jackson xml git home page here:

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




回答5:


Underscore-java has static method U.xmlToJson(xml). I am the maintainer of the project. Live example

import com.github.underscore.lodash.U;

U.xmlToJson("<a>\n  <b></b>\n  <b></b>\n</a>");


来源:https://stackoverflow.com/questions/18337394/convert-xml-to-json-object-in-android

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!