从JSON获取特定的嵌套项(objective-c)

时间:2013-08-21 14:41:36

标签: objective-c json

如果我有一个如下所示的json字符串,那么在objective-c中获取名称(bob)的第一次迭代的最佳方法是什么?

{
    "users": [
        {"id": "1", "name": "bob"},
        {"id": "2", "name": "john"},
        {"id": "3", "name": "joe"}
    ]
}

BTW,我目前正在使用JSONKit来解析json字符串。例如, NSDictionary * users = [jsonString objectFromJSONString];

2 个答案:

答案 0 :(得分:1)

您的“用户”容器是NSDictionary,这是无序关联容器。

即严格来说,没有“第一”元素(用户)。当然,您可以使用快速枚举进行迭代并获得第一个用户,但是哪个是“实现定义”(并且由于实现不公开,我们不知道哪个)。

编辑:

从现在开始,在编辑之后,你的“用户”容器就是一个数组,事情发生了巨大变化;)其他人给出了答案。

答案 1 :(得分:0)

好的,首先要做的是删除JSON的任何第三方框架。现在有一个原生的JSON类......

NSDictionary *dictionary = [NSJSONSerialization JSONObjectWithData:[jsonString dataUsingEncoding: NSUTF8StringEncoding] options:0 error:nil];

NSArray *users = dictionary[@"users"];

完成此操作后,您可以像对待任何其他阵列一样迭代users数组。

users数组中的每个对象都是NSDictionary,其中包含键@[@"id", @"name"]

e.g。

for (NSDictionary *userDict in users) {
    NSLog(@"User name = %@", userDict[@"name"]);
}