代码之家  ›  专栏  ›  技术社区  ›  Göktuğ Aral

在解析JSON时使用NSDictionary的优点或好处是什么?

  •  1
  • Göktuğ Aral  · 技术社区  · 11 年前

    我知道我们通常使用 NSDictionary NSArray 虽然我们做序列化,但我想知道如果我们更喜欢 字典 ?

    NSError* error;
    NSDictionary* json = [NSJSONSerialization JSONObjectWithData:responseData options:kNilOptions error:&error];
    
    1 回复  |  直到 11 年前
        1
  •  2
  •   Rafał Sroka    11 年前

    这不是偏好问题。这个 JSONObjectWithData: 方法返回类型为的对象 id .

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

    因此,并不是说你可以选择是否 NSArray NSDictionary 。实际上,您应该始终进行检查,以确保返回的对象是您期望的类型。

    您的代码应该如下所示:

    NSError* error;
    id JSONObject = [NSJSONSerialization JSONObjectWithData:responseData 
                                                    options:kNilOptions 
                                                      error:&error];
    
    if ([JSONObject isKindOfClass:[NSDictionary class]])
    {
        NSDictionary *JSONDictionary = (NSDictionary *)JSONObject;
    
        // Do your stuff.
    }
    

    否则,当 JSON 从您正在调用的端点返回的不再是字典,而是数组或任何您不期望的东西。