2017-06-17 64 views
-1

我使用谷歌圖書的API API獲取一些數據作爲JSON響應。在響應中有 ,還有JSONArrays,每個元素都是一本書,它包含了關於它的數據。問題是元素在涉及到的數據時應該是對稱的。換句話說,每個元素應該包含標題,作者,書籍封面網址,評分等。當一本不包含,例如,一個等級,該值應該存在,是空的,但這樣的for循環,它拋出一個異常它根本不存在該元素Android:json響應,谷歌API和從URL獲取圖像

the exception message

所以我應該怎麼做才能避免這樣的問題,即使它是空的,我也需要這些數據。


另一部分是在響應中提供的書的封面的網址。我想獲得那個形象。我嘗試了兩個最佳答案in this link,他們中沒有人似乎工作。

+0

聽起來像很基本的東西。 'if(!json.obj){// show default or something} else {// do your code}' – Tigger

+0

顯示你的代碼,請 –

回答

0

嘗試使用optJSONObject而不是getJSONObject來獲取JSONObject。
注:getJSONObject將通過錯誤,如果該對象不具備的關鍵,但optJSONObject只會返回null如果對象沒有價值

JSONArray array = null;// your array 
      for (int i = 0; i < array.length(); i++) { 
       JSONObject jsonObject = array.optJSONObject(i); 

       if(jsonObject == null) { 
        continue; 
       } 

    //   JSONObject ratingObject = jsonObject.getJSONObject("rating"); // Dont use this 
       JSONObject ratingObject = jsonObject.optJSONObject("rating"); 

       if(ratingObject != null) { 
        // Do someting here 
       } 
      } 

圖像加載你可以使用Glide LIB它可以幫助你。

+0

非常感謝json解決了我的問題 – sowailam