我正面临问题
错误
java.lang.NullPointerException:尝试调用接口方法' java.lang.Object [] java.util.Collection.toArray()'在空对象引用上
我确信我在从J-SON响应中获取数据时出错了
这里我在做什么
JSONObject json = new JSONObject(incomingRecover_JSON);
JSONArray dive = json.getJSONArray("items");
for (int i=0 ; i< dive.length() ; i++) {
JSONObject dive_deep = dive.getJSONObject(i);
JSONObject dive_more_deep = dive_deep.getJSONObject("volumeInfo");
String title = dive_more_deep.getString("title");
String sub_title = dive_more_deep.getString("subtitle");
Data_Holder store_things = new Data_Holder(title, sub_title);
array_list.add(store_things);
}
**,这是J-SON **
https://www.googleapis.com/books/v1/volumes?q=global&maxResults=10&orderBy=newest
答案 0 :(得分:2)
并非所有volumeInfo都有标题和副标题。
当没有密钥时,getString()方法返回null。
使用try catch处理null。
答案 1 :(得分:0)
并非所有volumeInfo都有标题和副标题。
当没有密钥时,getString()方法返回null。
所以要么使用try catch来处理null,要么使用has()meyhod检查密钥是否存在
示例:
if(dive_more_deep.has("subtitle))
{
String sub_title = dive_more_deep.getString("subtitle");
}