我正在尝试解析这个相对简单的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解析的大多数示例和tutorails使用的是另一种格式,所以我也非常满意这个演示解析这种数组的示例。
答案 0 :(得分: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
答案 1 :(得分:0)
您共享的json对象可以建模为以下Model类:
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);
}