我正在从 url 检索 json 数据。json“字符串”有一个对象,其中包含多个对象,每个对象都包含自己的键、值属性……本质上,json对象是一个包含或多或少是字典对象的对象的NSArray。我正在尝试使用 NSJSONSerialization 但没有很多文档,而且我似乎无法弄清楚如何使用以下 json 示例:
{"allObjects":[{"firstName":"homer","middleName":"j","lastName":"simpson"
,"address": "123 evergreen terrace","countryCode":"US","zip":12345},
{"firstName": "marge","middleName":"b","lastName":"simpson","address":
"123 evergreen terrace","countryCode":"US","zip":12345}]}
(如果重要,JSON 对象包含更多条目)
是否有特定的“选项”我需要与 NSJSONSerialization 一起使用以获取字典数组(数组为“allObjects”)?
任何帮助将不胜感激!
提前致谢。
更新
此代码导致错误:
@vishy 我也这么认为,但是当我运行这段代码时,
NSArray *json = [NSJSONSerialization JSONObjectWithData:geoNamesJSON options: kNilOptions error:&error];
NSDictionary *dict = [json objectAtIndex:0];
NSArray *allKeys = [dict allKeys];
NSString *key = [[NSString alloc] init];
NSEnumerator *keyEnum = [allKeys objectEnumerator];
NSLog(@"All keys in the first dictionary object:");
while(key = [keyEnum nextObject]){
NSLog(@"%@", key);}
我收到此错误:
-[__NSCFDictionary objectAtIndex:]:无法识别的选择器发送到实例 0x1fd7cd10 * 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[__NSCFDictionary objectAtIndex:]:无法识别的选择器发送到实例 0x1fd7cd10”*第一次抛出调用堆栈:(0x3796c2a3 0x35c7c97f 0x3796fe07 0x3796e531 0x378c5f68 0xf310b 0xf219d 0x38ca4321 0x38cdecfd 0x38d53cc1 0x38cd86a7 0x38cd8481 0x38c52abb 0x38cc78d7 0x355b9bd9 0x3665c4b7 0x366611bd 0x3793ff3b 0x378b2ebd 0x378b2d49 0x37def2eb 0x38c91301 0xd3551 0x3c39db20) libc++abi.dylib: terminate called throwing an exception (lldb)