2013-08-20 58 views
15

我有一個XML字符串,如下圖所示:XML轉換成JSON對象的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> 

是否有可能XML轉換成JSON?

回答

58

您也可以嘗試這種方式。我已經嘗試過並親自測試過它。

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

+0

感謝您的回覆其工作 – sharry

+0

簡單和工作:D令人驚歎.... –

+0

節省了我很多的時間。謝謝! – fruqi

2

我建議你使用json-lib,這個庫增加了JSON support to any Java program。 json-lib可以將XML轉換爲JSON對象。

你可以得到JSON-lib的here

EG。

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

我一直在使用JSON lib中嘗試,但得到的NoSuchMethodError異常 – sharry

+0

你可以請貼logcat的 –

+1

所致:java.lang.VerifyError的:網/平方英尺/ JSON/XML/XMLSerializer的 – sharry

4

我剛剛爲Android Studio發佈了一個「XML to JSON」庫。 它很容易與gradle集成,易於使用和可配置。

XmlToJson可以在GitHub上:

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

享受!

+0

適用於我,更重要的是,它非常容易編輯使用'json-smart'庫來代替糟糕的'org.json'實現我不能忍受'JSONException' – aroth

+0

嘿,我檢查了你的主動性,它很nice.some值像''「issn」 :「00368733」 - >在您的解決方案中表現得很像「」issn「:368733,」。帶有零的第一個數字正在丟失,僅用於您的信息搜索.. –

+0

而且列表值也與{}括號一起打破。 –