试图解析由一个安静的Web APS为iOS项目返回的json数组
发布时间:2020-12-14 19:40:05 所属栏目:百科 来源:网络整理
导读:我正在尝试解析由RESTful Web API返回的 JSON数组,该API看起来类似于以下内容(使用jsonviewer,json作为一组数组中的字典返回): [{"date": "2011-03-21","meal": "BREAKFAST","category": "BREAKFAST BAKERY","recipe": "213012","name": "Aesops Bagels","p
我正在尝试解析由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]; } 我得到的错误是:
所以我很确定在for循环上面的行中发生了错误,这导致数组尝试将nil作为值.但任何帮助找出问题/如何成功解析这个json将是非常感激的.我对json,xcode和iOS都很新,所以如果我做了特别愚蠢的事情我会道歉. 解决方法
您实际上在JSON示例中没有名为menuItem的项目.您的代码看起来像是为了解析看起来像这样的JSON:
[{ "menuItem" : { "name" : "Aesops Bagels",… } },] 即,它期望列表中每个字典中的“menuItem”键. NSDictionary *menuItem = [diction objectForKey:@"menuItem"]; NSString *name = [menuItem objectForKey:@"name"]; 至: NSString *name = [diction objectForKey:@"name"]; 在尝试将名称添加到结果数组之前,您可能还需要确保名称不是nil,以防您的数据有一个缺少名称的条目. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |