JSON解析导致nsrray obj c中的nscfarray

时间:2015-12-07 09:44:47

标签: ios objective-c json

我正在使用

从MQTT消息转换JSON格式的数据
id json = [NSJSONSerialization JSONObjectWithData:data options:0 error:nil];

结果我得到了一本字典,如下所示

{colorCode = "#0000FF";
label = "Tornado Warning";
locations =     (
            {
        account = 3;
        "floor_plan" =             (
            18
        );
        id = 11;
        label = "Albert Elementary School (ES)";
    }
);
msgType = AlertInitiated;
origin = webapp; }

使用以下代码获取floor_plan数组。

NSDictionary *locations = [dict valueForKey:@"locations"];
NSArray *floor_plan = [locations valueForKey:@"floor_plan"];

我得到了floor_plan

<__NSArrayI 0x7fa87b5919f0>(
  <__NSCFArray 0x7fa87b5af8d0>(
    18
  )
)

为什么NSCFAray在NSArray中生成内部? 注意: - 同样的json在android中进行解析,floor_plan数组作为普通数组得到。

3 个答案:

答案 0 :(得分:1)

NSArray <NSDictionary <NSString *,id> *> *locations = json[@"locations"];
NSDictionary <NSString *,id> *firstLocation = locations.firstObject;
NSArray *floorPlan = firstLocation[@"floor_plan"];

答案 1 :(得分:0)

首先确保位置变量字典看起来不错......

然后试试这个:

for(Person person1 : list1) {
    for(Person person2 : list2) {
        if(person1.getName().equals(person2.getName()) && 
                person1.getAge().equals(person2.getAge())) {
            //your code
        }
    }
}

答案 2 :(得分:0)

尝试过这样的工作。

NSArray *floor_plan = [[locations valueForKey:@"floor_plan"] firstObject];