使用Objective C转换JSON并构建Dictionary

时间:2015-06-27 06:42:02

标签: ios objective-c json nsjsonserialization

我有一个非常复杂的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制作,以便我可以实现其他功能。

任何人都可以给我一个小小的暗示怎么做?

2 个答案:

答案 0 :(得分:1)

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

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

例如:

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

答案 1 :(得分:1)

试试这个方法:

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

[self getSubDictionaryWithDictionary:dic];

这个方法只记录NSDictionary内的值,如果你想处理NSArray类的类,由你决定......:)

- (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];
        }  
    }
}

这个提取嵌套字典里面的所有字典,你可以根据需要修改它..:)

希望这有用..干杯.. :)