0

以下に示すようなJSONがあります。

{
        "places": [{
            "name": "Ankola",
            "slug": "ankola",
            "category": "beach",
            "distance": "521",
            "travel_time": "8 hrs, 2 mins",
            "days": "3",
            "latitude": "14.669456",
            "longitude": "74.300952",
            "weather": "Summer 21\u00b0-36\u00b0C, Winter 12\u00b0-35\u00b0C",
            "todo": "Baskal gudda, Nadibag, Shedikuli, Keni, Belekeri",
            "about": "Ankola is a small town surrounded by numerous temples. It is in line with Arabian sea. Ankola is famous for its native breed of mango called ishaad and for cashews harvesting.",
           "image": [
                     "Cm5NXlq.jpg",
                     "9OrlQ9C.jpg",
                     "DRWZakh.jpg",
                     "dFKVgXA.jpg",
                     "5WO2nDf.jpg"
                     ]

        }]
}

キーと値のペアをフェッチする方法は知っていますが、json内の配列を解析して文字列配列を形成する方法がわかりません(画像-私の場合)

要約すると、次のようなものが必要です。「image」タグの下に5つの画像名があり、それらを文字列配列に入れたいです。これどうやってするの?

4

4 に答える 4

1

使用する :

JSONArray images = yourJSONObject.getJSONArray("image");
for(int i = 0; i < images.length(); i++){
   String image = images.getString(i);
}

私が覚えているように、これはトリックを行うはずです。

于 2013-02-14T10:05:29.593 に答える
1

まず、JSON 文字列を Java オブジェクト ( JSONObject) に変換する必要があります。次に、あなたを取得し、JSONArrayそれを反復処理します。

例:

JSONObject jsonObj = null;
try {
    jsonObj = new JSONObject (jsonString);
    JSONArray images = itemObj.getJSONArray ("images");
    int length = images.length ();

    for (int i = 0; i < length; i++)
        Log.d ("Image Filename", images.getString (i));
} catch (JSONException e) {
    e.printStackTrace();
}

編集: JSON が無効であることがわかりました。画像ごとにオブジェクトがあり、そのオブジェクトにはデータの値の部分しか含まれていません。有効な画像配列の例は次のとおりです。

{
    "image": [
        "Cm5NXlq.jpg",
        "9OrlQ9C.jpg",
        "DRWZakh.jpg",
        "dFKVgXA.jpg",
        "5WO2nDf.jpg"
    ]
}
于 2013-02-14T10:11:18.583 に答える
1

私は提案します:

  1. これらの json オブジェクトによって定義されたデータ構造を記述する独自のクラスを作成します。最後の手段として、JSON 文字列に基づいて Java クラスを生成することもできます - jsongenを見てください。
  2. 独自の Java クラスMyClass(たとえば

    MyClass myClass = gson.fromJson(jsonString, MyClass.class);

于 2013-02-14T10:21:40.660 に答える