Android:json 响应,google api 并从 url 获取图像

Android: json response, google api and getting image from url

我正在使用 google 本书 api 来获取一些数据作为 json 响应。 在响应中,有 JSONArrays,每个元素都是一本书,并且包含有关它的数据。问题是当涉及到它们包含的数据时,元素应该是对称的。换言之,每个元素都应包含标题、作者、书籍封面 url、评分等。例如,当一本书不包含评级时,该值应该存在并且为空,但对于该元素它根本不存在,因此在 for 循环中它会抛出异常

所以我应该怎么做才能避免这样的问题,我确实需要这些数据,即使它是空的。


另一部分是回复中提供的书籍封面 url。我想得到那个图像。我尝试了两个最佳答案 in this link,但似乎没有一个有效。

尝试使用 optJSONObject 而不是 getJSONObject 来获取 JSONObject。
注意:如果对象没有键,getJSONObject 将通过错误,但如果对象没有值,optJSONObject 将 return 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 库,它可能对您有所帮助。