JSONparsing在google books api中

时间:2017-07-29 13:36:34

标签: android json parsing

我正试图从这个谷歌书籍api" https://www.googleapis.com/books/v1/volumes?q=android&maxResults=20"

获得结果

Json解析的代码是

try {
            JSONObject root = new JSONObject(booksJson);
            JSONArray books = root.getJSONArray("items");
            for (int i = 0; i < books.length(); i++) {
                JSONObject book = books.getJSONObject(i);
                JSONObject info = book.getJSONObject("volumeInfo");
                String title = info.getString("title");
                JSONArray authors = info.getJSONArray("authors");
                String author = authors.getString(0);
                JSONObject imageLinks = info.getJSONObject("imageLinks");
                String imageLink = imageLinks.getString("smallThumbnail");
                Book bookObject = new Book(author,title,imageLink);
                booksList.add(bookObject);
                Log.d(LOG_TAG + " Index :", String.valueOf(i) + "  :  " + String.valueOf(books.length()));
            }
        } catch (JSONException e) {

        }

问题是当我在网络浏览器中检查时有20个结果,当我在logcat中记录books.length()时它也会显示20个结果但是它会跳过一些书并显示预期的结果较少。请帮助。

1 个答案:

答案 0 :(得分:0)

结果较少,因为在for循环中解析数据时发生了异常,并且中断了for循环。数据显示在异常发生之前,数据添加到 booksList

因此,调试for循环以检测您尝试解析哪个参数但未找到,因此发生了异常

谢谢