我有一个非常复杂的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
制作,以便我可以实现其他功能。
任何人都可以给我一个小小的暗示怎么做?
答案 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];
}
}
}
这个提取嵌套字典里面的所有字典,你可以根据需要修改它..:)
希望这有用..干杯.. :)