如果我有一个如下所示的json字符串,那么在objective-c中获取名称(bob)的第一次迭代的最佳方法是什么?
{
"users": [
{"id": "1", "name": "bob"},
{"id": "2", "name": "john"},
{"id": "3", "name": "joe"}
]
}
BTW,我目前正在使用JSONKit来解析json字符串。例如, NSDictionary * users = [jsonString objectFromJSONString];
答案 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"]);
}