2014-02-23 146 views
0

我試圖解析這個相對簡單的JSON數組:解析簡單的JSON陣列

{ 
    "tags":[ 
     "Cheese", 
     "Milk", 
     "Yoghurt" 
    ], 
    "success":1, 
    "message":"Tags found" 
} 

什麼我有是這樣的:

 Log.d("Tag products: ", json.toString()); 

     try { 
      // Checking for SUCCESS TAG 
      int success = json.getInt("success"); 

      if (success == 1) { 
       // products found 
       // Getting Array of Products 
       JSONArray products = json.getJSONArray("tags"); 

      } else { 
       // no products found 
      } 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 

我的數組被記錄到我的logcat的完美。我成功地檢索了成功和信息的價值。但我無法解析實際的標籤。

關於json解析的大多數例子和圖解使用的都是另一種格式,所以我也會比一個演示這種數組解析的例子更令人滿意。

回答

1

循環遍歷json數組並獲取基於索引的項目。

爲了解析

JSONArray products = json.getJSONArray("tags"); 
for(int i=0;i<products.length();i++) 
{ 
String value= (String) products.get(i); 
Log.i(".........",value); 
} 

您還可以@ GSON

https://code.google.com/p/google-gson/

0

已共享,可以仿照下面的Model類JSON對象:

public class ModelClass 
    { 
     public List<string> tags { get; set; } 
     public int success { get; set; } 
     public string message { get; set; } 
    } 

一旦你將json字符串解析成ModelClass的對象,那麼你可以訪問標籤列表並獲取其中的值。

您可以使用gson解析器來進行反序列化。

Gson gsonParser = new Gson(); 
ModelClass modelObject = new ModelClass(); 
modelObject = gsonParser.fromJson(jsonString, modelObject.getClass()); 

for(String tagString : modelObject.tags) 
{ 
    Log.d("AppTag", tagString); 
} 
+0

謝謝你的回答,雖然我更喜歡Raghunandan的回答,因爲它更緊湊(代碼) – Mdlc