从 google api 解析 json object 返回 null

Parsing json object from google api returning null

我正在制作一个简单的应用程序,我在其中扫描一本书的条形码并从 Google API 中获取其标题和作者,

现在,这是 json 的 url(对于我正在扫描的特定书籍)

https://www.googleapis.com/books/v1/volumes?q=isbn:9788120305960

使用此代码获取字符串中的 json

HttpURLConnection urlConnection  = (HttpURLConnection)url.openConnection();
        InputStream inputStream = urlConnection.getInputStream();
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream,"iso-8859-1"));
        String line = "";

        while ((line=bufferedReader.readLine())!=null)
        {
            response+=line;
        }

        bufferedReader.close();
        inputStream.close();
        urlConnection.disconnect();
        Log.d("Info",response);
        return response;

我将结果存储在一个字符串中,并使用这段代码来解析 (json_response 是一个字符串)

            JSONObject rootObject = new JSONObject(json_response);
            JSONArray items = rootObject.getJSONArray("items");
            JSONObject items_object = items.getJSONObject(0);
            JSONObject volume_info = items_object.getJSONObject("volumeInfo");
            book.setTitle(volume_info.getString("title"));
            JSONArray authors = volume_info.getJSONArray("authors");
            Log.d("Info","authors array length: "+authors.length());
            String author="";
            for (int i =0;i<authors.length();i++)
            {
                author+=authors.getString(i)+", ";
            }

            book.setAuthor(author);

例外情况是:

Value null of type org.json.JSONObject cannot be converted to JSONObject

我还用 logcat 查看了 json_response 中包含的内容,它看起来像这样

null{ "kind": "books#volumes", "totalItems": 1, "items":...

这里的 null 可能是导致问题的原因,所以...任何见解如何处理这个???

PS: 我是学生,第一次接触json和android,代码不专业,请见谅:)

拥有

null{ "kind": "books#volumes", "totalItems": 1, "items":...

表示response值还没有初始化。

因此您应该将其初始化为空字符串。