【json数据传到前台】Json数据传输中null的问题以及宏的返回值

更新时间:2019-08-10    来源:js教程    手机版     字体:

【www.bbyears.com--js教程】

问题现象

但是几个项目下来一直遇到一个坑爹的问题,程序在获取某些数据之后莫名崩溃。其实很早就发现了原因:由于服务器的数据库中有些字段为空,然后以Json形式返回给客户端时就会出现这样的数据:

 代码如下
"somevalue":null



通过JsonKit 这个第三方库解析出来的数据就成了

 代码如下 somevalue = "";



这个数据类型不是nil 也不是 String。 解析成对象之后,如果直接向这个对象发送消息(eg:length,count 等等)就会直接崩溃。提示错误为:

 代码如下 -[NSNull length]: unrecognized selector sent to instance 0x388a4a70



解决方法,其实一直没有找到完美的解决办法,坑了我很久。

1、最开始的解决方法就是为了应付当前遇到的崩溃,看看哪个字段可能为空,那么就对该字段使用前进行判断,通过崩溃时的错误提示可以看出,这样的字段解析成的对象是 NSNull 类型的,所以可以直接判断是不是此类型:

 代码如下 if (![isKindOfClass:[NSNull class]]){xxxxxxx;}



因为字段实在太多,就找一个补一个。

2、后来想彻底解决这问题,就打算从数据源下手,其实应该可以用正则表达式匹配这个null ,然后进行替换,奈何正则是我的硬伤啊。于是就相出了一个山寨方法:字符串匹配。在获取到服务器返回的Json时,返回结果时string对象,于是就先替换 null 为 为空字符””,然后再解析。

 代码如下 json = [jsonStr  stringByReplacingOccurrencesOfString:@":null" withString:@":"""];



这个方法本

本文来源:http://www.bbyears.com/wangyezhizuo/61325.html

热门标签

更多>>

本类排行