Search code examples
androidxmljsonlibraries

Convert XML to JSON object in Android


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?


Solution

  • 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"}}