解析JSON时使用NSDictionary有什么好处或好处?

时间:2014-07-16 09:32:51

标签: ios objective-c json nsdictionary

我知道我们在进行序列化时通常会使用NSDictionaryNSArray,但我不知道如果我们更喜欢NSDictionary会有什么优势吗?

NSError* error;
NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];

1 个答案:

答案 0 :(得分:2)

这不是优先考虑的问题。 JSONObjectWithData:方法返回id类型的对象。

  

数据中JSON数据的Foundation对象,如果出现错误,则为nil   发生。

因此,您无法选择是否需要NSArrayNSDictionary。实际上,您应该始终进行检查以确保返回的对象是您期望的类型。

您的代码应如下所示:

NSError* error;
id JSONObject = [NSJSONSerialization JSONObjectWithData:responseData 
                                                options:kNilOptions 
                                                  error:&error];

if ([JSONObject isKindOfClass:[NSDictionary class]])
{
    NSDictionary *JSONDictionary = (NSDictionary *)JSONObject;

    // Do your stuff.
}

否则,当你正在调用的终端返回的JSON不再是字典时,你会冒着崩溃的风险,但是阵列或任何你不期望的东西。