说你这样做,
NSString *teste = yourData[@"title"];
"title"
如果在 json 中完全丢失没问题:你只需得到null
. 如果你这样做:
NSString *teste = yourData[@"location"][@"city"];
如果"city"
json 嵌套中缺少,没问题。如果整个"location"
部分不存在,也没有问题
然而!你会经常看到这样的json," largeImage = "<null>"; "
在这种情况下,如果您使用上面的代码,应用程序将会崩溃。
在实践中,您必须这样做:
NSString *imageUrl = nil;
if ([yourResults[thisRow][@"largeImage"] isKindOfClass:[NSDictionary class]])
imageUrl = yourResults[thisRow][@"largeImage"][@"URL"];
我的问题是:
是否有一些非常聪明的方法可以覆盖文字语法(即,覆盖底层消息,也许??)来解决这个问题?
所以本质上,让这个概念[@"blah"]
基本上首先检查它确实是一本字典,然后再尝试操作。
很遗憾,因为实际上,您永远无法使用这种美妙的语法
yourData[@"location"][@"city"]
在实践中,由于我概述的问题。
PS 很抱歉早先对这个问题的困惑,由 Paramag 修复。下面 - 好一个 Paramag。