iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了试图解析由一个安静的Web APS为iOS项目返回的json数组大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我正在尝试解析由RESTful Web API返回的 JSON数组,该API看起来类似于以下内容(使用jsonviewer,json作为一组数组中的字典返回): [{ "date": "2011-03-21", "meal": "bREAKFAST", "category": "bREAKFAST BAKERY", "recipe": "213012", "name": "Aesops Bagel
我正在尝试解析由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,以防您的数据有一个缺少名称的条目.

@H_489_59@

大佬总结

以上是大佬教程为你收集整理的试图解析由一个安静的Web APS为iOS项目返回的json数组全部内容,希望文章能够帮你解决试图解析由一个安静的Web APS为iOS项目返回的json数组所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。