JSONException:照片没有价值

JSONException: No value for photo

我正在使用 Flickr API 让我的应用根据用户搜索显示图像。我不断收到此错误:JSONException: No value for photo

拍照电话:

public ArrayList<Category> processResults(Response response) {
    ArrayList<Category> categories = new ArrayList<>();

    try {
        String jsonData = response.body().string();
        if (response.isSuccessful()) {
            JSONObject flickrJSON = new JSONObject(jsonData);
            //json data
            JSONArray photoJSON = flickrJSON.getJSONArray("photo");
        }
    }
}

json格式是这样的:

{
    photos: { page: 1, 
              pages: 2165, 
              perpage: 100, 
              total: "216413", 
              photo: [ { id: "37095719122",
              ....
    }
}

由于您的代码的 new JSONObject() 部分工作正常,可以安全地假设您获得的 JSON 对象是有效的,在这种情况下,您的实际 JSON 对象必须看起来像这样:

{
    photos: { page: 1, 
              pages: 2165, 
              perpage: 100, 
              total: "216413", 
              photo: [ { id: "37095719122",
              .....
    }
}

变量 flickerJSON 将包含整个对象,它的唯一字段是 photos,而您尝试访问的 photo 字段是 [= 的内部字段14=]对象。

因此,您可以像这样访问 photo 字段:

JSONArray photoJSON = flickrJSON.getJSONObject("photos").getJSONArray("photo");