json解析出现的<nul>l问题
2016-07-23 00:00
369 查看
摘要: 通过JsonKit 这个第三方库解析出来的数据就成了
somevalue = "<null>";
这个数据类型不是nil 也不是 String。 解析成对象之后,如果直接向这个对象发送消息(eg:length,count 等等)就会直接崩溃。提示错误为:
-[NSNull length]: unrecognized selector sent to instance 0x388a4a70
下面直接上解决办法。从根本上解决,不用再每个字段查找;
1、最暴力的方法。
牛逼的老外写了一个Category,叫做NullSafe ,在运行时操作,把这个讨厌的空值置为nil,而nil是安全的,可以向nil对象发送任何message而不会奔溃。这个category使用起来非常方便,只要加入到了工程中就可以了,你其他的什么都不用做,对,就是这么简单。详细的请去Github上查看;
https://github.com/nicklockwood/NullSafe,
没错,就是加入工程,编译下,不需要做任何的操作,老外就是牛。
2、
在nslog中其实可以很容易发现,nil和NULL的区别的,在打印的时候nil出来是(null), NULL出来是<null>,看出来了吧。
于是扩展了一个类别:NSDic
- (id)objectForKeySafe:(id)aKey {
id obj=[self objectForKey:aKey];
if ((NSNull *)obj == [NSNull null]) {
return nil;
}
return obj;
}
somevalue = "<null>";
这个数据类型不是nil 也不是 String。 解析成对象之后,如果直接向这个对象发送消息(eg:length,count 等等)就会直接崩溃。提示错误为:
-[NSNull length]: unrecognized selector sent to instance 0x388a4a70
下面直接上解决办法。从根本上解决,不用再每个字段查找;
1、最暴力的方法。
牛逼的老外写了一个Category,叫做NullSafe ,在运行时操作,把这个讨厌的空值置为nil,而nil是安全的,可以向nil对象发送任何message而不会奔溃。这个category使用起来非常方便,只要加入到了工程中就可以了,你其他的什么都不用做,对,就是这么简单。详细的请去Github上查看;
https://github.com/nicklockwood/NullSafe,
没错,就是加入工程,编译下,不需要做任何的操作,老外就是牛。
2、
在nslog中其实可以很容易发现,nil和NULL的区别的,在打印的时候nil出来是(null), NULL出来是<null>,看出来了吧。
于是扩展了一个类别:NSDic
- (id)objectForKeySafe:(id)aKey {
id obj=[self objectForKey:aKey];
if ((NSNull *)obj == [NSNull null]) {
return nil;
}
return obj;
}
相关文章推荐
- HTML特殊字符的html、js、css 写法unicode汇总
- 强制转换js文件编码格式!!!
- javascript中对窗口大小,文本等的设置
- js中的面向对象程序设计(1)-对象和属性的类型
- JS正则验证手机号
- jsp
- 两个示例介绍JavaScript的闭包
- JavaScript DOM 总结(一)
- JavaScript面向对象及原型的理解及笔记整理【一】
- jsp内置对象和el表达式
- jsp 三大指令和动作标签
- w3c js笔记
- jsonp和xml格式生成与调用
- JS实现常用排序算法—经典的轮子值得再造
- js-表单验证
- JavaScriptCookie&PHPCookie实现用户登录信息自动填入
- javascript之单击获得单词
- jsp中的Cookie
- jsp七大动作指令
- js学习笔记(比较全)