转换 JSON 并使用 Objective C 构建字典

Converting JSON and building a Dictionary using Objective C

我有一个非常复杂的 JSON 数据。我尝试使用 objective c 编程来解析。 JSON数据如下(这里我用简单的格式来解释,但是层次很深):

{
    "university": "CUNY",
    "results": {
        "Engineering": 200,
        "Computer Science": 298,
        "Life Science": 28
    }
}

使用 NSJSONSerialization,我试图解决这个问题,我使用以下代码:

NSDictionary *parsedObject = [NSJSONSerialization JSONObjectWithData:data options:0 error:NULL];
[parsedObject objectForKey:@"results"];

并得到结果。但是我需要一个像 myResultDict 这样的字典,它将由 results 组成,这样我就可以实现其他功能。

有人可以给我一个小提示吗?

当您使用 NSJSONSerialization 获取解析数据时,它将为您提供包含多个键值对的解析字典。

然后通过获取结果键,您可以获得结果字典。

例如:

NSDictionary *myResultDict = [parsedDictionary objectForKey:@"results"];

试试这个方法:

NSDictionary *dic = @{@"university": @"CUNY", @"results" : @{@"Engineering": @200, @"Computer Science": @298, @"Life Science": @28}};

[self getSubDictionaryWithDictionary:dic];

此方法仅记录 NSDictionary 中的值,如果您想处理 NSArray 类型的 class,由您决定。:)

- (void)getSubDictionaryWithDictionary:(NSDictionary *)dictionary
{
    for (id key in [dictionary allKeys])
    {
        id object = [dictionary objectForKey:key];

        NSLog(@"key:%@ value:%@",key, object);

        if ([object isKindOfClass:[NSDictionary class]])
        {
            [self getSubDictionaryWithDictionary:object];
        }  
    }
}

这会提取嵌套字典中的所有字典,您可以根据需要对其进行修改.. :)

希望这对您有所帮助..干杯..:)