0

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

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

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

4

2 回答 2

1

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

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

编辑:

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

于 2013-08-21T14:52:08.323 回答
0

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

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

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

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

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

例如

for (NSDictionary *userDict in users) {
    NSLog(@"User name = %@", userDict[@"name"]);
}
于 2013-08-21T14:52:06.217 回答