解析 JSON 个对象错误

Parsing JSON objects error

我有这个JSON。

{
"cnt": 1,
"list": [
    {
        "object1": [
            {
                "subobject1": "value1",
                "subobject2": "value2",
                "subobject3": "value3"
            }
        ],
        "object2": {
            "subobject1": value1,
            "subobject1": value2,
            "subobject1": value3
        }
    }
]

}

我无法从第一个对象获取数据。我收到一个错误

-[__NSArrayM objectForKeyedSubscript:]: unrecognized selector sent to instance 0x7fa281f82520
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM objectForKeyedSubscript:]: unrecognized selector sent to instance 0x7fa281f82520'

对于另一个对象,我获取了数据并且可以在 NSLOG 中看到它,但不明白第一个对象有什么问题以及应用崩溃的原因。

这就是我在 DataModel

中解析 json 的方式
NSError *deserializationError;
        NSMutableDictionary  *json = [NSJSONSerialization JSONObjectWithData:data options: NSJSONReadingMutableContainers error: &deserializationError];

        NSArray * responseArr = json[@"list"];

        NSMutableArray *result = [[NSMutableArray alloc] init];

        if(responseArr && [responseArr isKindOfClass:[NSArray class]]) {

            for(NSDictionary *cDictionary in responseArr) {
                DAObject *cty = [[DAObject alloc] initWithDictionary:ctyDictionary];

                if(cty) {
                    [result addObject:cty];
                }

            }

        }

然后在对象 .m 文件中

DAServiceObject *object1 = [[DAServiceObject alloc] initWithDictionary:dictionary[@"object1"]];
self.value1 = object1.value1;
self.value2 = object1.value2;

应用程序崩溃。

您的 JSON 数据不是数组。它是一本字典。这是一本字典,一键 "cnt" 和一键 "list"。键 "list" 下的对象是一个数组。

您误解了数据结构:"list" 包含一个只有一项的数组,即字典。该字典包含每个键的数组(例如 "item1"),同样只有一个项目(又是一个字典)。

编辑

// ...
if(responseArr && [responseArr isKindOfClass:[NSArray class]]) {
    NSDictionary *content = responseArr[0];
    for (NSSString *key in [content allKeys]) {
        NSDictionary *a = content[key][0];
        // ...
    }
}