如何循环从JSON获得的NSDictionary?

时间:2013-10-17 13:24:13

标签: ios json nsdictionary

如何循环访问从JSON获得的以下字典?我如何循环才能获得id 0001,0002?

{
    0001 = {
      userName = "a";
      photo = "";
    };
    0002 = {
      userName = "b";
      photo = "";
    };
}

5 个答案:

答案 0 :(得分:3)

您通过NSDictionary键循环:

NSArray *keys = [dictionary allKey];

for (id *key in keys ) {
    NSDictionary *userPhoto = [dictionary objectForKey:key];
    // here you can either parse the object to a custom class
    // or just add it to an array.
}

或直接在NSDictionary上使用fast enumeration

for (id *key in dictionary ) {
    NSDictionary *userPhoto = [dictionary objectForKey:key];
    // here you can either parse the object to a custom class
    // or just add it to an array.
}

每个键可以检索对象。

或使用enumerateKeysAndObjectsUsingBlock:

[dictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
    // Here you can access the object and key directly.
}

答案 1 :(得分:1)

试试这种方式......

获取所有密钥

NSArray *a=[yourDictionary allKeys];

答案 2 :(得分:0)

NSArray *keys = [dictionary allKeys];

试试这个。您将获得数组中的所有键。然后你可以相应地在NSString中获取它们。

答案 3 :(得分:0)

另一种选择是使用enumerateKeysAndObjectsUsingBlock: api来枚举键和对象,

使用非常简单,

[dictionary enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
    NSLog(@"Key: %@, Value:%@",key,obj);
    if([key isEqualToString:@"0001"]) {
        //Do something
    }
    // etc.
}];

希望有所帮助!

答案 4 :(得分:-1)

我找到了答案。我已经尝试使用以下代码,但它提供了所有数据。 因为我得到的json是worng格式。

    for (NSString *key in Dict) {}