解析 JSON 数据时如何摆脱 <null> 对象
Posted
技术标签:
【中文标题】解析 JSON 数据时如何摆脱 <null> 对象【英文标题】:How to get rid of <null> objects when Parsing JSON data 【发布时间】:2014-06-26 20:19:09 【问题描述】:目前,我有一个有效的 Web 服务调用,它返回我搜索的最便宜对象的标题。例如,如果我搜索“书”,它将返回我所在地区最便宜的书。但是,有时,我会得到这样的对象:
2014-06-26 13:14:12.008 FindTheCheapestOne[2244:60b] The Little Book of Champagne
2014-06-26 13:14:12.009 FindTheCheapestOne[2244:60b] The Holy Bible
2014-06-26 13:14:12.010 FindTheCheapestOne[2244:60b] <null>
2014-06-26 13:14:12.010 FindTheCheapestOne[2244:60b] Books of the Hebrew Bible (Study Guide): Book of Proverbs, Book of Job, Book of Esther, Book of Jeremiah, Book of Isaiah, Song of Songs
2014-06-26 13:14:12.010 FindTheCheapestOne[2244:60b] Book of Job : A Short Reading
2014-06-26 13:14:12.010 FindTheCheapestOne[2244:60b] Book of Jeremiah
当我得到这些对象时,我将它们存储到一个数组中,并将这个数组传递给我的 TableViewController。但是,我无法传递这些对象,因此我得到了 SIGABRT。
这是我尝试修复它的方法:
for (NSDictionary *theItem in itemCallArray)
NSString *titleString = theItem[@"title"];
if (titleString !=NULL)
[titleArray addObject:titleString];
NSLog(@"%@", titleString);
ResultsTableViewController *tableVC = (ResultsTableViewController *)segue.destinationViewController;
[tableVC setArray:titleArray];
我仍然得到 SIGABRT,但它并不能解决问题。
所有帮助将不胜感激,并在此先感谢:)
【问题讨论】:
你得到的不是nil
,而是一个NSNull对象。
【参考方案1】:
检查 NULL 值的一个很好的测试是:
if (title == (id)[NSNull null] || title.length == 0 )
希望这会有所帮助。快乐编码:)
【讨论】:
我不再得到任何空对象,但现在它说由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'-[NSNull 长度]: 啊,没关系,我编辑了你的答案: if (titleString != (id)[NSNull null] && titleString.length != 0 ) 现在它正在工作。我会接受你的回答,不管我是否指出了正确的方向:)以上是关于解析 JSON 数据时如何摆脱 <null> 对象的主要内容,如果未能解决你的问题,请参考以下文章
在grails中解析JSON时如何获取真正的空值而不是JSONObject.NULL值
如何在使用 request.data 时摆脱 Python 中的“Json 文件导入错误”?
ios 解决数据请求json解析字典后,由于java某些类库转换json字符串后出现键值为<null>无法保存在userDefault的问题