从 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
值还没有初始化。
因此您应该将其初始化为空字符串。
我正在制作一个简单的应用程序,我在其中扫描一本书的条形码并从 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
值还没有初始化。
因此您应该将其初始化为空字符串。