2013-08-20 50 views
15

Tôi có một chuỗi XML như hình dưới đây:Chuyển đổi XML để đối tượng JSON trong 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> 

Có thể chuyển đổi XML để JSON?

Trả lời

58

Bạn cũng có thể thử cách này. Tôi đã thử và tự mình thử nghiệm nó.

Bước 1: Hãy Tải java-json.jar

Bước 2: Thêm phần này vào /libs thư mục của dự án của bạn sau đó thêm để xây dựng con đường.

Bước 3: Sau đó, sử dụng nó như sau

  • nhập khẩu để tìm kiếm

    import org.json.JSONException; 
    import org.json.JSONObject; 
    import org.json.XML; 
    
  • chuỗi mẫu

    String sampleXml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>" 
        + "<mobilegate>"  
    +"<timestamp>232423423423</timestamp>"       
    + "<txn>" + "Transaction" + "</txn>" 
    + "<amt>" + 0 + "</amt>" 
    + "</mobilegate>"; 
    
  • Json Chuỗi

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

+0

cảm ơn cho câu trả lời của nó làm việc – sharry

+0

Đơn giản và làm việc: D Amazing .... –

+0

Tiết kiệm rất nhiều thời gian của tôi. Cảm ơn! – fruqi

2

Tôi khuyên bạn nên sử dụng json-lib, thư viện bổ sung JSON support to any Java program. json-lib có thể lấy XML và chuyển nó thành một đối tượng JSON.

Bạn có thể nhận json-lib here

Ví dụ:

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

tôi đã cố gắng sử dụng json lib nhưng có NoSuchMethodError ngoại lệ – sharry

+0

bạn có thể xin vui lòng dán logcat –

+1

do: java.lang.verifyError: net/sf/json/xml/XMLSerializer – sharry

4

Tôi vừa phát hành Thư viện "XML thành JSON" cho Android Studio. Dễ dàng tích hợp với gradle, đơn giản để sử dụng và có thể định cấu hình.

XmlToJson có sẵn trên GitHub:

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

tận hưởng!

+0

Làm việc cho tôi. Và quan trọng hơn, rất dễ chỉnh sửa để sử dụng thư viện 'json-smart' thay vì triển khai 'org.json' khắc nghiệt. Tôi không thể đứng 'JSONException'. – aroth

+0

hey, tôi đã kiểm tra sáng kiến ​​của bạn. Đó là các giá trị nice.some như" '"issn" : "00368733" -> hoạt động trong giải pháp của bạn như "" issn ": 368733,". Các chữ số đầu tiên với số không đang giảm. Chỉ dành cho thông tin của bạn .. –

+0

Và giá trị danh sách cũng vi phạm {} dấu ngoặc vuông. –