0

XML Web サービスがあります。この XML を解析し、別のテキストビューに保存したいと考えています。以下はXMLコンテンツで、String変数で取得し終えました。

{
    "30_year_rate": 4.25,
    "30_year_pi": 196.78,
    "30_year_apr": 4.375,
    "20_year_rate": 4.375,
    "20_year_pi": 250.37,
    "20_year_apr": 4.5,
    "15_year_rate": 3.75,
    "15_year_pi": 290.89,
    "15_year_apr": 3.875,
    "10_year_rate": 3.625,
    "10_year_pi": 397.89,
    "10_year_apr": 3.75,
    "5_year_arm": 2.75,
    "5_year_pi": 163.3,
    "5_year_apr": 2.875,
    "7_year_arm": 3,
    "7_year_pi": 168.64,
    "7_year_apr": 3.125,
    "3_year_arm": 4,
    "3_year_pi": 190.97,
    "3_year_apr": 4.125,
    "5_year_io_arm": "N/A",
    "5_year_io_pi": "N/A",
    "5_year_io_apr": "N/A",
    "QuoteID": 1449,
    "Licensed": "N"
}

このデータを解析するにはどうすればよいですか? それをJSONオブジェクトに変換して取得したい、またはその他の合理的なアプローチをしたい。

4

2 に答える 2

1

Web サービスから返されたものが上記の文字列である場合、既に JSON 文字列を取得しています。そこから情報を取得できるオブジェクトを作成するには、 のようなものを使用しますJSONObject

JSONObject object = new JSONObject(your_string_variable);
double thirtyYearRate = object.getDouble("30_year_rate");
String licensed = object.getString("Licensed");

double文字列を含む JSON フィールドから を取得しようとすると、いくつかの問題が発生する可能性があります。つまり、上記の「N/A」フィールドです。それらを文字列として引き出してdoubleから、それらから s を解析しようとする必要がある可能性があります。解析で例外がスローされた場合は、それが文字列であることがわかります。

あるいは、どうやらAndroidで動作する Jackson のようなもので JSON バインディングを調べることもできます。

于 2012-07-30T14:03:46.280 に答える
0

JSON を解析するには、古いバージョンの Android を使用している場合は、組み込みの JSONObject org.jsonまたはJson-libを使用できます。

XML を解析するには、XMLPullParserを使用します。サンプルはここにあります: XML データの解析

于 2012-07-30T14:08:04.817 に答える