2013-08-20 6 views
15

ich eine XML-Zeichenfolge haben, wie unten dargestellt:Konvertieren von XML zu JSON-Objekt in Android

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

Ist es möglich, XML zu JSON-Format konvertieren?

Antwort

58

Sie können diesen Weg auch versuchen. Ich habe es selbst ausprobiert und getestet.

Schritt 1: Laden Sie bitte die java-json.jar

Schritt 2: Fügen Sie diese auf /libs Ordner Ihres Projekts fügen Sie dann Pfad zu bauen.

Schritt 3: verwenden sie dann als

  • Importe folgt zu suchen

    import org.json.JSONException; 
    import org.json.JSONObject; 
    import org.json.XML; 
    
  • Beispiel 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()); 
    

Ausgang:

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

+0

danke für die Antwort seine Arbeit – sharry

+0

Einfach und funktioniert: D Amazing .... –

+0

Sparen Sie eine Menge Zeit. Vielen Dank! – fruqi

2

Ich würde vorschlagen, dass Sie json-lib verwenden, eine Bibliothek, die JSON support to any Java program hinzufügt. json-lib kann XML verwenden und es in ein JSON-Objekt konvertieren.

Sie können Json-lib here

Eg erhalten.

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

Ich habe mit json lib versucht, aber bekam NoSuchMethodError Ausnahme – sharry

+0

könnten Sie bitte durch logcat –

+1

verursacht einfügen: java.lang.verifyError: net/sf/json/xml/XMLSerializer – sharry

4

Ich habe gerade eine "XML zu JSON" Bibliothek für Android Studio veröffentlicht. Es ist leicht zu integrieren mit Gradle, einfach zu bedienen und konfigurierbar.

XmlToJson ist auf GitHub verfügbar:

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

genießen!

+0

Funktioniert für mich. Und was noch wichtiger ist, war sehr einfach zu Bearbeiten Sie, um die "json-smart" -Bibliothek anstelle der grauenhaften "org.json" -Implementierung zu verwenden. Ich kann 'JSONException' nicht ertragen. – aroth

+0

hey, ich habe Ihre Initiative überprüft. Es ist nett.Einige Werte wie" '"issn" : "00368733" -> Verhalten in Ihrer Lösung wie "" issn ": 368733,". Die ersten Ziffern mit Nullen fallen. Nur für Ihre Info bro .. –

+0

Und die Liste Werte auch mit {} Klammern brechen. –