2014-02-23 195 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