【问题标题】:Android: json response, google api and getting image from urlAndroid:json 响应、google api 和从 url 获取图像
【发布时间】:2017-06-17 02:05:33
【问题描述】:

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

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


另一部分是响应中提供的书籍封面的网址。我想得到那个图像。我尝试了两个最佳答案in this link,但似乎都不起作用。

【问题讨论】:

  • 听起来很基本的东西。 if (! json.obj) { // show default or something } else { // do your code }
  • 请出示您的代码

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


【解决方案1】:

尝试使用 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,它可能会对您有所帮助。

【讨论】:

    猜你喜欢
    • 2018-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-30
    • 2017-12-09
    • 2016-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多