And*_*tts 6 xcode parsing json ios
我正在尝试解析由RESTful Web API返回的JSON数组,该API看起来类似于以下内容(使用jsonviewer,json作为一组数组中的字典返回):
[{
"date": "2011-03-21",
"meal": "BREAKFAST",
"category": "BREAKFAST BAKERY",
"recipe": "213012",
"name": "Aesops Bagels",
"portion": "1",
"unit": "each"},
我试图获取"名称"信息,然后将其存储到tableview中.这是我用来完成的代码:
-(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:]:object不能为nil'
所以我很确定在for循环上面的行中发生了错误,这导致数组尝试nil作为一个值.但任何帮助找出问题/如何成功解析这个json将是非常感激的.我对json,xcode和iOS都很新,所以如果我做了特别愚蠢的事情我会道歉.
您实际上并没有menuItem在 JSON 示例中调用的项目。您的代码看起来是为了解析 JSON 而编写的,如下所示:
[{ "menuItem" : { "name" : "Aesops Bagels",\n                  \xe2\x80\xa6\n                }\n },\n]\n即,它期望列表中的每个字典中有一个“menuItem”键。\n如果您实际上正在尝试解析您发布的代码片段,我认为您只需要从此简化循环代码:
\n\nNSDictionary *menuItem = [diction objectForKey:@"menuItem"];\nNSString *name = [menuItem objectForKey:@"name"];\n到:
\n\nNSString *name = [diction objectForKey:@"name"];\n在尝试将名称添加到结果数组之前,您可能还需要确保该名称不为零,以防万一您的数据中有一个缺少名称的条目。
\n| 归档时间: | 
 | 
| 查看次数: | 4609 次 | 
| 最近记录: |