NSJSONSerialization返回“<null>”string

我试图设置一个NSDictionary到从服务器检索到的JSON对象,我这样做在这一行:

_peopleArray = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil]; 

它工作正常,并正确地创build字典。 但是,我有一个问题,在JSON对象中为"<null>"值在字典中存储为"<null>"string值。 有没有办法解决这个问题或解决它? 我想避免遍历整个事物并将其设置为@""

谢谢你的帮助!

〜Carpetfizz

我猜没有什么,虽然它可以很容易地从api制造商纠正,如果不可能的话,你总是可以把一个简单的macros,我用来避免这样的事情,下面的macros

 #define Is_Empty(value) (value == (id)[NSNull null] || value == nil || ([value isKindOfClass:[NSString class]] && ([value isEqualToString:@""] || [value isEqualToString:@"<null>"]))) ? YES : NO #define IfNULL(original, replacement) IsNULL(original) ? replacement : original #define IsNULL(original) original == (id)[NSNull null] #define SafeString(value) IfNULL(value, @"") 

用法

 self.label.text=SafeString([dic objectForKey:@"name"]); 

你错了。 JSON中的空值作为<null>string值存储。 它们存储为NSNull对象,NSLoglogging为<null>。

你永远不能相信你提供的数据。 如果你认为你有一个NSString,并且服务器向你发送一个数字,你的代码可能会崩溃。

 NSString* myJSONString = ...; if ([myJSONString isKindOfClass:[NSString class]]) { it is a string } else { it is not a string }