次のように見える RESTful Web API によって返された JSON 配列を解析しようとしています (jsonviewer を使用すると、json は配列内の一連の辞書として返されます)。
[{
"date": "2011-03-21",
"meal": "BREAKFAST",
"category": "BREAKFAST BAKERY",
"recipe": "213012",
"name": "Aesops Bagels",
"portion": "1",
"unit": "each"},
「名前」情報を取得して、テーブルビューに保存しようとしています。これを達成するために私が使用しているコードは次のとおりです。
-(void)connectionDidFinishLoading:(NSURLConnection *)connection
{
NSArray *allDataArray = [NSJSONSerialization JSONObjectWithData:webData
options:0
error:nil];
for (NSDictionary *diction in allDataArray) {
NSDictionary *menuItem = [diction objectForKey:@"menuItem"];
NSString *name = [menuItem objectForKey:@"name"];
[array addObject:name];
}
[[self MyTableView]reloadData];
}
私が得ているエラーは次のとおりです。
キャッチされていない例外 'NSInvalidArgumentException' が原因でアプリを終了しています。理由: '*** -[__NSArrayM insertObject:atIndex:]: オブジェクトを nil にすることはできません'
したがって、for ループの上の行でエラーが発生していると確信しています。これにより、配列がnil
値として取得しようとしています。しかし、何がうまくいかないのか、このjsonを正常に解析する方法を理解する助けがあれば、非常に高く評価されます. 私はjson、xcode、およびiOSの両方に非常に慣れていないため、特に愚かなことをした場合はお詫び申し上げます。