2011-08-19 22 views
3

我得到一个JSON响应,包含一个空键( “”):如何将具有空键的JSON解析为NSDictionary?

{ 
    "errors": { 
     "": [ 
      "Wrong email and password combination" 
     ] 
    } 
} 

可以这样使用JSON JSONKit正确解析到的NSDictionary?

+0

它可能会将它解析为一个零长度的NSString,它的功能等同于@“”。但是,由于JSONKit相当小且开放源代码,只需看一下实现并查看它的实际功能。如果它不是return @“”,那么它会被击晕 –

回答

2

如果它是数据部分,并且您使用的是TouchJSON,则它通常会被解释为空,并设置为字典中的NSNull对象而不是NSString。 (你可以比较[NSNull null])。

不知道有JSONKit或者它是否是一个关键,而不是一个值将对此做出任何区别会发生什么(我假设没有,但如果其解释为NSNull键,有多个null键,这将我假设创建一些问题)。

编辑:杰森是正确的,他的评论如下。 NSNull仅在对象上存在空值时设置 - 空字符串在字典中设置为空字符串。如果密钥值是空字符串,则词典具有的键的对象@“”(并因此它可以被检索
[myDictionary objectForKey:@“”];

注意,这是所有在TouchJSON

+0

这将是无效的JSON解析...如果一个值是一对双引号,里面什么也没有,它是一个空字符串,唯一的JSON值应该是被转换为NSNull实例将是没有的文字字符串'null'引号。 –

+0

你可能是正确的,它是无效的JSON解析,但我似乎记得这是touchJSON的行为,当一个值有一个空字符串 - 也许我的记忆在这方面也是不正确的,我将不得不再次尝试当我得到个机会。 – gamozzii

0

是的,为什么不呢?该键可能是空字符串,@""。你试过了吗?