Json 数组大小固定为 10

Json array size stuck to 10

我正在尝试使用 Gson 解析 Google Books API 的项目(书籍),但出于某种原因,如果我尝试访问,JsonArray 大小会固定为 10索引大于它会崩溃,但数组中应该有 10000 多个对象。我试图用 android 工作室的 JSON 库解析它,但我遇到了完全相同的错误。

public String parse(String jsonLine) {
    JsonElement jelement = new JsonParser().parse(jsonLine);

    System.out.println("jelement " + jelement.toString());
    System.out.println("Number of objects " + jelement.getAsJsonObject().get("totalItems"));
    JsonObject jobject = jelement.getAsJsonObject();
    System.out.println("jobject " + jobject.toString());
    JsonArray jarray = jobject.getAsJsonArray("items");
    jobject = jarray.get(500).getAsJsonObject();

错误:

Number of objects 10275

FATAL EXCEPTION: main Process: java.lang.IndexOutOfBoundsException: Invalid index 500, size is 10

我认为这个 API 是分页的 API 这意味着,例如,假设您正在调用 Google 本书 API.

现在可能有 thousands/millions 本书。但是为了 API 的有效实施,他们可能只发送前 10 本书,

示例: API 调用:http://www.somewebsite.com/api/books 结果将是 10 本书的结果。但是 JSON 有总图书数。所以使用这个你可以访问分页的 API

{
  totalBooks: 100,
  books: [
    {
      //Book1
    },
    {
      //Book2
    }
  ]
}

所以现在有 100 本书,但您仍然只收到 10 本书。 因此,要访问第 55 本书,您可能必须提出这样的请求 API: http://www.somewebsite.com/api/books/5

响应此 API 电话将有 51 到 60 本书。

{
  totalBooks: 100,
  books: [
    {
      //Book51
    },
    {
      //Book52
    }
  ]
}