在JSON中犯错误

时间:2017-09-23 19:21:45

标签: java android json xml

我正面临问题

错误

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

2 个答案:

答案 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");
}