首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >TouchJSON,处理NSNull

TouchJSON,处理NSNull
EN

Stack Overflow用户
提问于 2011-04-19 21:16:16
回答 3查看 13K关注 0票数 16

您好,我正在使用TouchJSON来反序列化一些JSON。我过去一直在使用它,在这些情况下,我手动处理了NSNull的出现。我认为作者也必须处理这个问题,所以我再做一次只会增加开销。然后,我在文档中找到了以下内容:

避免输出中的NSNull值。

代码语言:javascript
复制
NSData *theJSONData = /* some JSON data */
CJSONDeserializer *theDeserializer = [CJSONDeserializer deserializer];
theDeserializer.nullObject = NULL;
NSError *theError = nil;
id theObject = [theDeserializer deserialize:theJSONData error:&theError];}

据我所知,该类的用户可以将C风格的空指针传递给反序列化程序,当它遇到NSNull时,它将插入传递给它的值(空)。所以稍后当我使用这些值时,我不会得到NSNull,而是NULL。

这似乎很奇怪,返回值是一个只能包含对象的NSDictionary,不是应该将值默认为'nil‘吗?

如果为NULL,我可以像这样检查这些值吗?

代码语言:javascript
复制
if([jsonDataDict objectForKey:someKey] == NULL)

似乎更符合逻辑的是能够做到这一点:

代码语言:javascript
复制
if(![jsonDataDict objectForKey:someKey])

更不用说允许传递nil但传递NULL会导致崩溃的所有情况。

或者我可以只将'nil‘传递给反序列化程序吗?

这在很大程度上源于我仍然在为nil,NULL,NSNULL null而苦苦挣扎,也许我没有看到使用nil的潜在警告。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5716942

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档