尝试从Google图书API

时间:2017-06-13 18:03:17

标签: android json api google-books

我刚开始在Android中使用API​​,所以我使用Google Books API创建一个简单的应用程序,所以我想检索标题,作者和描述。这是提取信息的方法,但它抛出异常并执行catch块。这是查询“https://www.googleapis.com/books/v1/volumes?q=android&maxResults=1”,其中bookJSON变量是查询响应:

 private static List<Book> extractFeatureFromJson(String bookJSON) {

        if (TextUtils.isEmpty(bookJSON)) {
            return null;
        }

                    List<Book> books = new ArrayList<>();


        try {

            // Create a JSONObject from the JSON response string
            JSONObject baseJsonResponse = new JSONObject(bookJSON);


            JSONArray itemsArray = baseJsonResponse.getJSONArray("items");


            for (int i = 0; i < itemsArray.length(); i++) {

                           JSONObject currentBook = itemsArray.getJSONObject(i);

                JSONArray authorArray = currentBook.getJSONArray("authors");

                StringBuilder authorsStringBuild = new StringBuilder();

                for(int j=0; j<authorArray.length(); j++){
                    authorsStringBuild.append(authorArray.getString(j));
                    authorsStringBuild.append(", ");
                }

                String authors = authorsStringBuild.toString();

                String title = currentBook.getString("title");

                String description = currentBook.getString("description");

                double rating = currentBook.getDouble("averageRating");

                Book book = new Book( title, authors ,description , rating );

                books.add(book);
            }

        } catch (JSONException e) {

            Log.e(LOG_TAG, "Problem parsing the book JSON results", e);
        }

        return books;
    }

1 个答案:

答案 0 :(得分:0)

以后请发布输出和错误日志。我没有足够的声誉来评论这一点。 我运行了你的代码,这是一个JSON解析错误。 在代码中替换此行

JSONArray authorArray = currentBook.getJSONArray("authors");

用这个

itemsArray.getJSONObject(i).getJSONObject("volumeInfo").getJSONArray("authors");

你错过了JSONobject&#34; authors&#34;。

您可以使用在线JSON格式化工具更好地可视化层次结构,让您的生活更轻松。这是我喜欢的https://jsonformatter.curiousconcept.com/