2013-02-14 144 views
0

我有一個JSON,如下所示:的Android - 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以形成串陣列(圖像 - 在我的情況下)

總結我想這樣的事情: 我有5圖像名稱下的「圖像」標記,我想他們在一個字符串數組。我怎樣才能做到這一點?

+2

JSONArray jsonArr = jsonObjet.getJSONArray( 「圖像」); – Martin 2013-02-14 10:06:26

+0

希望錯誤的逗號是複製粘貼錯誤。另外,爲什麼圖像名稱本身在大括號中?你可以跟誰創建這個JSON? – 2013-02-14 10:06:41

+0

它是有效的JSON? – rajeshwaran 2013-02-14 10:07:02

回答

1

用途:

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

我記得這應該做的伎倆。

1

在這裏你去:

JSONArray ja = whatEverYourJsonObject.getJSONArray("image"); 

for(int i=0; i<ja.length(); j++){ 
    String name = ja.getString(i); 
} 
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" 
    ] 
} 
1

我建議:

  1. 創建自己的類,它描述了數據結構由這些JSON對象定義 。作爲最後的手段,你甚至可以基於JSON字符串的Java 類 - 看 jsongen
  2. 當你將擁有自己的Java類(比方說MyClass),您可以輕鬆地解析JSON使用GSON您生成的Java類,像:

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