我的应用程序非常完整,我们正处于测试阶段。我注意到在我们的数据库中,有许多json数据返回null,但不是多数。有时,名字数据将为空,姓氏将包含数据,反之亦然。我的应用程序在收到NULL实例时崩溃。
如何捕获此NULL并为其设置异常(对于json数据的所有不同字段)?
答案 0 :(得分:2)
有一些可能的解决方案。
如果你只想测试null(我假设NSNull),那么以下工作: How can I check If I got null from json?
如果您正在使用字典并且只想用空字符串替换所有空值,那么这可能是您正在寻找的: Replace all NSNull objects in an NSDictionary
我个人使用的类别为NSDictionary添加了一个新方法。如果值为NSNull(最初来自TouchJSON, dealing with NSNull)
,则返回nil<强>的NSDictionary + Utility.h 强>
#import <Foundation/Foundation.h>
@interface NSDictionary (Utility)
- (id)objectForKeyNotNull:(id)key;
@end
<强>的NSDictionary + Utility.m 强>
#import "NSDictionary+Utility.h"
@implementation NSDictionary (Utility)
- (id)objectForKeyNotNull:(id)key {
id object = [self objectForKey:key];
if (object == [NSNull null]){
return nil;
}
return object;
}
@end
实施班级(.m)
#import "NSDictionary+Utility.h"
...
id success = [JSON objectForKeyNotNull:@"success"];
if (success == nil){
/* "success" either NSNull or didn't exist in JSON. */
}