web-dev-qa-db-ja.com

AndroidでXMLをJSONオブジェクトに変換

以下に示すようなXML文字列があります。

<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に変換することは可能ですか?

19
sharry

この方法でも試すことができます。私は自分で試してみました。

ステップ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>"; 
    
  • ジョンソン・ストリング

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

67
Ritesh Gune

「Android Studio。

XmlToJsonはGitHubで利用可能です:

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

楽しい!

6
Arnaud SmartFun

json-libを追加するライブラリであるJSON support to any Java programを使用することをお勧めします。 json-libはXMLを取得し、それをJSONオブジェクトに変換できます。

Json-libを取得できます here

例えば。

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

nderscore-Java には静的メソッドU.xmlToJson(xml)があります。私はプロジェクトのメンテナーです。 実例

import com.github.underscore.lodash.U;

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

Xmlをjacksonオブジェクトに変換してから、jackson jsonを使用できます。

Jackson xmlにXmlPullサポートを追加しようとしました。ここで分岐したプロジェクトを見つけます。

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

現在、バージョン2.9.6でのみサポートされています。 (ブランチjackson-dataformat-xml-2.9.6-XmlPullのクローンを作成します)

申し訳ありませんが、時間の制約により詳細なドキュメントを提供することはできません。特定のブランチをプルしてjarをビルドするためのgitとmavenの知識がある場合は、比較的簡単です。

Jackson xmlのドキュメントは、jackson xml gitのホームページにあります:

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

0
praveenp