检查JSON有一个对象NSArray

时间:2015-08-18 00:46:49

标签: json nsarray nsdictionary

我在使用JSON服务响应方面遇到了一些问题。该服务以两种不同的方式响应。即,然后产生错误或有意义的响应,它会抛出另一个json格式。现在大部分时间都没关系,有时候Objective C只是放弃了,因为它没有处理新结构(即我试图对它进行编程以便处理)。

我有一个基本的JSON调用并返回(Abstract)。

NSArray *jsonArray = [[NSJSONSerialization JSONObjectWithData: data options: NSJSONReadingMutableContainers error: &e] mutableCopy];

当我拨打提供详细信息的服务时,我会得到以下格式(无错误)

Printing description of jsonArray:
{
    YBBN =     {
        charts =         (
                        {
                id = "5f0ec74a-6e7c-5484-aef2-5929b85d9739";
                type = General;
            },

当我调用没有数据的相同服务时,它提供以下结构导致崩溃。

Printing description of jsonArray:
{
    NZAA = 0;
}

我只想检查返回的JSON,如果图表节点存在,如果它继续(这些不是您要查找的机器人),否则会抛出错误并处理异常并停止崩溃在用户身上。

我尝试了不同的技巧,但每个人似乎要么完全跳过“检查”,要么完全失败。

我已经回到了绘图板,肯定有一种简单的方法可以实现一个简单的if语句来检查。我错过了什么?

提前致谢!

1 个答案:

答案 0 :(得分:0)

好的,我在这次讨论的帮助下找到了这个问题。 How to check if an NSDictionary or NSMutableDictionary contains a key?

不确定我之前是怎么找不到的,从来没有能够测试它的建议和效果。

为了完成,我最终得到了以下代码,希望这可能对其他人有所帮助。

NSDictionary *newArray = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];
                       NSString *_icaoCode = airportICAOCode.text;


                        if ([[newArray allKeys] containsObject:_icaoCode]) {
                            NSLog(@"Contains key");
                        }