如何从json中捕获iOS中的NULL异常

时间:2014-03-24 23:52:00

标签: ios json nullpointerexception null

我的应用程序非常完整,我们正处于测试阶段。我注意到在我们的数据库中,有许多json数据返回null,但不是多数。有时,名字数据将为空,姓氏将包含数据,反之亦然。我的应用程序在收到NULL实例时崩溃。

如何捕获此NULL并为其设置异常(对于json数据的所有不同字段)?

1 个答案:

答案 0 :(得分:2)

有一些可能的解决方案。

1)测试NSNull

如果你只想测试null(我假设NSNull),那么以下工作: How can I check If I got null from json?

2)用字符串

替换NSNull

如果您正在使用字典并且只想用空字符串替换所有空值,那么这可能是您正在寻找的: Replace all NSNull objects in an NSDictionary

3)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. */
}