2013-11-19 1 views
0

В этом цикле for мой код ищет «имя», «счет» и «id», но иногда объект «count» недоступен в ответ JSON. Как установить условия, когда объект «count» отсутствует?Как установить условия, когда парсер JSON не может найти объект JSON

for(int i = 0; i < jArray.length(); i++){ 
    JSONObject albumData = jArray.getJSONObject(i); 
    Global.albumArray.add(albumData.getString("name")); 
     if (albumData.getString("count")==null){ 
      Global.countArray.add("?"); 
     } 
     else{ 
      Global.countArray.add(albumData.getString("count")); 
     } 
    Global.linkArray.add(albumData.getString("id")); 
} 

Операция «if» не работает, очевидно, но это пример того, что я пытаюсь выполнить.

+1

Вы можете использовать исключение JSON, выгруженное getString [смотрите здесь] (http://www.json.org/javadoc/org/json/JSONObject.html#getString (java.lang.String)) – GerryR

+0

Итак, я думаю, что наиболее обычное путь - это бросить попытку и поймать getString («count»)? –

ответ

1

Существует метод, называемый строка_опций, что означает дополнительную строку - optString(String name, String fallback)

имя = ваш ключ

запасной вариант == значение по умолчанию, если ключ является недействительным

Так что теперь вам не придется устанавливать какие-либо условия, если иное условие

+0

Еще лучше. Это, вероятно, лучший подход. Спасибо, что дали мне знать! –

1

Вы можете попробовать это:

String s; 
try { 
    s = albumData.getString("count"); 
} catch(JSONException ex) { 
    // something to do if there isn't "count" item 
} finally { 
    // something to do if there is "count" 
}