0

Android JSON オブジェクトを使用して特定の応答を解析しようとしましたが、この応答 "{"r":{"f":[1,0,15,5948]}}" を解析するコードを作成できません。

以下のコードを使用してみましたが、エラーが発生しています:

"f の値がありません: {"r":{"f":[1,0,15,5948]}}"

コードは次のとおりです。

String abc = "{\"r\":{\"f\":[1,0,15,5948]}}";

JSONObject json = new JSONObject(abc);

if (json.has("r")) {

Bundle b = new Bundle();

b.putInt("p", json.getJSONArray("f").getInt(0));

b.putInt("s", json.getJSONArray("f").getInt(1));

}

上記の応答を解析し、それぞれの変数をバンドルして値を取得するつもりです。f b.putInt("p", json.getJSONArray("f").getInt(0));:[1....] などで 1 を取得する必要があります。

上記の応答の値を取得するための作業コードを誰かが手伝ってくれますか?

4

2 に答える 2

0

あなたがするとき:

b.putInt("p", json.getJSONArray("f").getInt(0));

json変数はまだjsonのルートオブジェクトを参照しています。フィールド f にアクセスするには、1 レベル下にトラバースする必要があります。

これは私のために働く:

String abc = "{\"r\":{\"f\":[1,0,15,5948]}}";
JSONObject json = new JSONObject(abc);
if (json.has("r")) {
    json = json.getJSONObject("r");
    Bundle b = new Bundle();
    b.putInt("p", json.getJSONArray("f").getInt(0));
    b.putInt("s", json.getJSONArray("f").getInt(1));
}

注記:

json = json.getJSONObject("r");

于 2013-05-26T11:49:29.213 に答える