[英]return null while parsing json in loop - android
试图从json对象解析“publisher”键它返回错误,但如果我只解析“title”键它工作正常
public ArrayList<BookData> parseJSON(String jsonString){
try{
JSONObject obj = new JSONObject(jsonString);
JSONArray jsonArray = obj.getJSONArray("items");
for(int i=0;i<10;i++){
JSONObject object = jsonArray.getJSONObject(i);
JSONObject volumeInfo = object.getJSONObject("volumeInfo");
//this title works fine
String title = volumeInfo.getString("title");
//this publisher is throwing null pointer exception
String publisher = volumeInfo.getString("publisher");
//Log.v("testing title", publisher);
list.add(new BookData(title, "publisher"));
}
return list;
}catch (Exception e){e.printStackTrace();}
return null;
}
JSON在这里:
"volumeInfo":{
"title":"Organic Chemistry",
"authors":[
"Jonathan Clayden",
"Nick Greeves",
"Stuart Warren"
],
"publisher":"Oxford University Press"
}
为发布者放置一个null检查器可能是你得到NullpointerException,希望它会帮助你
list.add(new BookData(title, "publisher"));
用下面给出的代码替换它。
list.add(new BookData(title, publisher));
从getString
的文档中可以看到:
throws NullPointerException - 如果指定的名称没有任何映射
因此,如果title
工作正常,则表示publisher
者不在您的JSON中。 再次检查您的Json字符串。
希望这可以帮助。
将数据库添加到数组时,您将引号放在引号中:list.add(new BookData(title,“publisher”))这将传入字符串文字,您希望传入变量发布者。 因此,只需将该行中的“publisher”替换为发布者即可。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.