SBJsonparsing后执行(__NSArrayM objectForKey :)

我有一些问题试图parsingJSON使用SBJson,我做了一些研究,我找不到有帮助的…

我跟着一些关于如何做的博客,但是我仍然得到这个错误:“__NSArrayM objectForKey:”

所以这是我试图parsing的Json:

{ "result": [ { "authors": [ "Eric Ries" ], "bc": 9780671607, "title": "Yeah", "urlImage": "www.yeah.hey", "description": "Hey..." } ] } 

这是我正在使用的代码:

 SBJsonParser *json; NSDictionary *jsonResults; NSError *jsonError; json = [ SBJsonParser new ]; // Get result in a NSDictionary jsonResults = (NSDictionary*) [ json objectWithString:output error:&jsonError ]; // Check if there is an error if (jsonResults == nil) { NSLog(@"Erreur lors de la lecture du code JSON (%@).", [ jsonError localizedDescription ]); } else { NSDictionary *book = (NSDictionary *)[ jsonResults objectForKey:@"result"]; NSArray *items = (NSArray *) [book objectForKey:@"title"]; } 

错误 :

 -[__NSArrayM objectForKey:]: unrecognized selector sent to instance 0x7a2d390 2012-11-19 20:32:36.336 FMS[500:11f03] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM objectForKey:]: unrecognized selector sent to instance 0x7a2d390' *** First throw call stack: (0x2245012 0x16a3e7e 0x22d04bd 0x2234bbc 0x223494e 0x8c6a 0x36093 0xb39e83 0x2204376 0x2203e06 0x21eba82 0x21eaf44 0x21eae1b 0x219f7e3 0x219f668 0x8365c 0x2d6d 0x2c95) libc++abi.dylib: terminate called throwing an exception Current language: auto; currently objective-c 

并通过使用objectForKey的valueForKey intead

 [book valueForKey:@"title"]; 

我得到这个:

 ( "Yeah" ) 

而不是仅仅是

我不想再parsing(“是啊”)至less得到是啊…

你得到这个错误是因为“book”是一个数组,而不是一个字典。 如果所有的结果都是这样的,那就是“书”只有一个外在的东西。 您可以将定义书本的行更改为:

 NSDictionary *book = [[ jsonResults objectForKey:@"result"] lastObject];