我有dictionary
有时会从某些JSON数据中读取空值。当我这样做时:
NSDictionary *caption=[image objectForKey:@"caption"]; //crash here!
如果字段caption
在那里但是为空,(在JSON中,caption:null
),我会崩溃。
我该怎样消除这个?
我可以稍后检查null:
NSDictionary *caption=[image objectForKey:@"caption"];
NSString *text=@"";
if( caption!=NULL )
{text=[caption objectForKey:@"text"]; }
但是在此之前就已经崩溃了。
这就是我的词典的构建方式:
NSError *error = nil;
NSDictionary *result = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];
NSArray *myResults=[result objectForKey:@"data"];
long count=[myResults count];
for(NSDictionary *image in myResults)
{
NSDictionary *links=[image objectForKey:@"images"];
NSDictionary *standard=[links objectForKey:@"standard"];
NSString *url=[standard objectForKey:@"url"];
NSLog(@"image:%@",image);
NSDictionary *caption=[image objectForKey:@"caption"]; //CRASH
答案 0 :(得分:2)
你确定NSDictionary * caption = [image objectForKey:@“caption”];会回一本字典吗?
无论如何,检查它是否为JSON null的方法是:
if ([image[@"caption"] isEqual:[NSNull null]]) { // it's null }
请注意,词典和数组不能包含nil。 nil不是对象值。 [NSNull null]是一个特殊对象,相当于nil,可以在nil不能使用的地方使用。