2015-11-03 89 views
0

我正在加載一個json數組,但我需要知道json數組是否存在或不存在?因爲如果json數組不存在,應用程序將崩潰。如何檢查json數組是否可用並存在?

例如,我有這樣的JSON:

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

,我想知道的是,有一個名爲「music1」在我的代碼或者沒有任何JSON對象,然後如果有我想要得到的JSON數組並在我的android應用程序的列表中顯示它。

我很期待能幫助我的英雄!

+0

歡迎使用Stackoverflow。要回答你的問題,你應該提供關於你的代碼的更多細節,例如導致崩潰的代碼片段。 –

+0

只是拋出'JSONException e',它會跟蹤,如果沒有值對應於你的數組可用在json和可能你的應用程序不會崩潰 – Mohit

回答

2

我希望這個解釋適合評論。

總之:

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

讓撥打以上JSON對象o。 所以要檢查如果o有music1,所有你需要檢查的是寫下面一行:

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

然後你提取JSON數組的對象:

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

檢查現場的可用性:

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

或這種情況下:

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

如果數組不可用mJSONArray將爲空