如何检查json数组是否可用并存在?

时间:2015-11-03 08:34:02

标签: android json

我正在我的应用程序中加载一个json数组。但我需要知道json数组是否存在?因为如果json数组不存在,应用程序将崩溃。

例如,我有这个json:

{ 
"music1":
    [
    {
    "art":"",
                 "artist":"",
    "music":"",
     "flag":"",
                 "text":"",
                 "level":""
 }, 
    {
    "art":"",
                 "artist":"",
    "music":"",
    "flag":"",
                 "text":"",
                 "level":""
 },
]
}

我想知道在我的代码中是否有任何名为“music1”的json对象,然后如果有,我想获取json数组并在我的android应用程序的列表中显示它。

我期待着一位可以帮助我的英雄!

2 个答案:

答案 0 :(得分:5)

我希望这个解释符合评论。

无论如何:

{ 
"music1":
    [
    {
    "art":"",
                 "artist":"",
    "music":"",
     "flag":"",
                 "text":"",
                 "level":""
 }, 
    {
    "art":"",
                 "artist":"",
    "music":"",
    "flag":"",
                 "text":"",
                 "level":""
 }
]
}

让我们调用上面的json对象o。 因此,要检查o是否有音乐1,您需要检查的是写下面一行:

if(o.has("music1")){
   JSONArray array= o.getJSONArray("music1");
}

然后你提取json数组的对象:

for(int i=0;i<array.length();i++){
     array.getJSONObject(i);
}

答案 1 :(得分:1)

检查字段的可用性:

if(jsonObj.has("music1")){
    //yes
}

或者这种情况:

JSONArray mJSONArray = jsonObj.optJSONArray("nmusic1");

如果数组不可用,mJSONArray将为null