Android:json响应,谷歌api和从网址获取图像

时间:2017-06-17 02:05:34

标签: android json google-api drawable android-bitmap

我使用google books api获取一些数据作为json响应。 在响应中,有JSONArrays,每个元素都是一本书,它包含有关它的数据。问题是元素在包含数据时应该是对称的。换句话说,每个元素应包含标题,作者,书籍封面网址,评级等。当一本书不包含例如评级时,该值应该存在并且为空,但它对于该元素根本不存在,因此在for循环中它会引发异常

the exception message

那么我应该怎么做以避免这样的问题,即使它是空的,我也需要这些数据。

另一部分是答案中提供的书籍封面的网址。我想得到那个形象。我尝试了两个最佳答案in this link,而其中没有一个似乎有效。

1 个答案:

答案 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,它可以帮助您。