iOS,处理未确定的JSON数据结构

时间:2015-02-25 14:33:34

标签: ios json

可能值得说明的是,我还没有找到确定钥匙是否具有价值的好方法。我尝试过将值与nil进行比较,但这并不起作用。我发现唯一有效的方法是确定值isEqualToString:@""。 PHP的isset()是我寻找的理想选择

<小时/> 我有来自API的JSON数据。 通常,数据是一个对象数组,如下所示:

data: {
 { 
   number = 50,
   position = left
 },
 {
  number = 40,
  position = right
 }
}

我可以使用以下代码检查此结构的值:

[[self.data objectAtIndex:row] valueForKey:@"number"]

有时数据作为单个对象出现:

data: {
  error = 1
}

我在处理此问题时遇到了困难,因为在解析单个对象数据时,objectAtIndex:会导致应用程序自然崩溃。 我将如何处理这两种类型的数据结构?

我试过了一个IF OR,

if(![[self.data objectAtIndex:row] valueForKey:@"error"] || [[self.data valueForKey:@"error"] isEqualToString:@"1"])

但是初始条款仍会导致崩溃。

1 个答案:

答案 0 :(得分:1)

我通常会这样处理这种情况: -

    if ([self.data isKindOfClass:[NSArray class]])
    {
        NSArray *jsonArray = (NSArray *)self.data;
        // do something with the array...
    }
    else
    {
        NSLog(@"unexpected JSON data: %@", self.data);
    }