从JSON哈希获取值

时间:2014-03-15 11:22:51

标签: ios objective-c json cocoa core-data

我坚持使用这个JSON,我必须加载到Core Data:

{
  "versions": {
          "group12": "2662ad279e1c4303b534a0f363be7b90",
          "group51": "2205e48de5f93c784733ffcca841d2b5",
          "place123": "856babf68edfd13e2fd019df330e11c5"
      } 
}

我不知道如何在forin循环中处理这个问题。现在我有一些代码只显示版本的名称,例如group12group51但我无法从这个JSON中获取这些哈希值......

for (id activity in [responseObject objectForKey:@"versions"]) {
    NSLog(@"%@", activity);
}

可能这将是一些非常基本的东西,但我今天的想法有点偏外。

2 个答案:

答案 0 :(得分:1)

您当前只记录了字典中的密钥

获取该键的对象

for (id activity in responseObject[@"versions"]) {
    NSLog(@"%@", activity); // key
    NSLog(@"%@", responseObject[@"versions"][activity]); // value

}

答案 1 :(得分:1)

您从NSDictionary *返回[responseObject objectForKey:@"versions"]。如果在字典上使用快速枚举,则只能获得密钥。但是如果你想要键和值使用

[[responseObject objectForKey:@"versions"]
    enumerateKeysAndObjectsUsingBlock:^(id key, id object, BOOL *stop){
  // do something with key & object
}]

如果你知道,你的字典中总是有NSString *个对象,你可以专门化参数的类型。虽然在代码生成过程中这不会改变任何内容,但如果您尝试使用密钥上的方法或NSString未实现的对象,它将为您提供更好的代码完成和警告/错误。