在訪問以下URL(http://jamesstenson.com/portraits/?json=1)中的JSON數據時遇到了一些問題,基本上我想訪問「附件」下的「完整」「url」。我此刻的代碼如下:在從NSJSONSerialization生成的NSDictionary中訪問JSON數據
NSError *e = nil;
NSData *jsonFeed = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://jamesstenson.com/portraits/?json=1"]];
NSDictionary *jsonData = [NSJSONSerialization JSONObjectWithData:jsonFeed options:NSJSONReadingMutableContainers error: &e];
if (!jsonData) {
NSLog(@"Error parsing JSON: %@", e);
} else {
for(NSDictionary *item in [jsonData objectForKey:@"page"]) {
for(NSDictionary *attachment in [item objectForKey:@"images"]) {
NSLog(@"%@", attachment);
}
}
}
這使得扔了一個錯誤:
2011-12-21 10:13:39.362 JSON[3463:f803] -[__NSCFString objectForKey:]: unrecognized selector sent to instance 0x6a7b500
2011-12-21 10:13:39.363 JSON [3463:F803] *終止應用程序由於未捕獲的異常'NSInvalidArgumentException',原因:' - [__ NSCFString objectForKey:]:無法識別選擇器發送到實例0x6a7b500'
我知道我錯誤地訪問項目,但無法弄清楚如何實現這一點。我嘗試了幾種解決方案,如http://blogs.captechconsulting.com/blog/nathan-jones/getting-started-json-ios5 - 但沒有運氣。我是iOS開發的新手,對JSON有一點了解。感謝大家提前幫忙。
你確定你的JSON響應(被解析之前)包含了兩個完全命名爲'page'和'images'的項嗎? – Malloc 2011-12-21 10:23:01
您應該明確錯誤來自哪裏(哪條線)。用這個JSON來獲取那個特定的錯誤是沒有意義的。但是你的基本問題是你永遠不會提取「附件」數組。 – 2011-12-21 13:33:44
@熱舔錯誤是在這一行([jsonData objectForKey:@「page」]中的NSDictionary *項),因爲錯誤說[__NSCFString objectForKey:]:無法識別的選擇器,並讓我知道你在我的答案中發現錯誤 – Nakkeeran 2011-12-21 13:46:30