如何检查NSDictionary是否为null并读取目标c中的JSON值

How to check if NSDictionary is null and read the JSON value in objective c

提问人:user1285402 提问时间:6/14/2018 最后编辑:rmaddyuser1285402 更新时间:6/14/2018 访问量:75

问:

我想检查NSDictionary是否为NULL并读取JSON值。

这是我检查NSDictionary是否为null的代码:

if ([dataDict objectForKey:@"messages"]!= NULL) {
     NSLog(@"not null");
}
else
{
NSLog(@"null");
}

当我打印它的值时:[dataDict objectForKey:@"messages"]messages = "<null>"

我想读取JSON值“message”: “Not valid.” if messages is not null :

"messages": {
      "items": [
        {
          "message": "Not valid."
        }
      ]
    }
objective-c json null

评论


答:

1赞 rmaddy 6/14/2018 #1

如果看到输出,则表示该值是 的实例。所以你也需要检查一下。"<null>"NSNull

我将按如下方式更新您的代码:

id message = dataDict[@"messages"];
if (message == nil || message == [NSNull null]) {
    NSLog("null");
} else {
    NSLog("not null");
    if ([message isKindOfClass:[NSDictionary class]]) {
        NSDictionary *dict = (NSDictionary *)message;
        NSArray *items = dict[@"items"];
        if (items.count > 0) {
            NSString *message = items[0][@"message"];
            NSLog(@"Message: %@", message);
        }
    }
}