尝试从 json 创建的 nsdictionary 访问信息

Posted

技术标签:

【中文标题】尝试从 json 创建的 nsdictionary 访问信息【英文标题】:Trying to access information from a nsdictionary created by json 【发布时间】:2014-03-24 20:14:32 【问题描述】:

我正在尝试访问从 json 创建的 nsdictionary 中的信息,但似乎无法弄清楚如何访问这些值。我已经把字典打印出来,但无法访问特定的键/值:这里是 json

[ “id”:“1”, “问题”:“你几岁”, “答案”:[ "7", "9", “13” ] , “id”:“2”, “问题”:“你几岁”, “答案”:[ "7", "9", “13” ] ]

我最大的困惑是我退出字典时得到的格式:

NSLog(@"%@", questionsAndAnswers);

我回来了:

( 答案 = ( 7、 9、 13 ); ID = 1; question = "你几岁"; , 答案 = ( 7、 9、 13 ); ID = 2; question = "你几岁"; )

所以显示顺序与输入顺序不同,我认为这没什么大不了的。我想做类似的事情:

NSArray  *answersArray = [questionsAndAnswers allKeysForObject:@"answers"]; 

我从这里学到了什么:http://rypress.com/tutorials/objective-c/data-types/nsdictionary.html

但无论我如何格式化它都会出错。

这是字典的代码:

 NSString *filePath = [[NSBundle mainBundle] pathForResource:@"DataJson" ofType:@"json"];

NSData *JSONData = [NSData dataWithContentsOfFile:filePath options:NSDataReadingMappedIfSafe error:nil];

questionsAndAnswers = [NSJSONSerialization JSONObjectWithData:JSONData options:NSJSONReadingMutableContainers error:nil];

任何关于这个主题的帮助将不胜感激! 请记住,我是一个新手 ios 开发人员。我也研究了几个小时,但无济于事

【问题讨论】:

首先要了解的是,你的 JSON 是一个字典数组。 您还需要更好地解释您的问题。展示你尝试过的东西。解释你想要得到什么以及你实际得到了什么。 我会编辑和解释更多谢谢! 访问 json.org 并学习 JSON 语法。只需 5-10 分钟,而且能够读取 JSON 让生活变得轻松许多。 然后了解数组在 JSON 中被 [] 括起来,但在 NSArray 转储中被 () 括起来。 JSON“对象”(NSDictionary)在两个视图中都被 括起来。请注意,JSON“对象”中的名称/值对的顺序永远不能保证被保留。 【参考方案1】:

questionsAndAnswers 将是一个字典数组。所以你可以通过questionsAndAnswers[0]["id"]访问第一个问题的id

第二个问题的id是questionsAndAnswers[1][@"id"]等等。

【讨论】:

我没有意识到这是一个字典数组。我认为它可能是这样的,但既然已经确认,我可以了解更多关于处理字典数组的信息。谢谢

以上是关于尝试从 json 创建的 nsdictionary 访问信息的主要内容,如果未能解决你的问题,请参考以下文章

ios nsdictionary 创建 json

使用 Swift 将 JSON 字符串转换为 NSDictionary

使用带有数组的 NSDictionary 创建 JSON 文件

NSDictionary - 从返回的 JSON 服务中解析项目

如何从使用 JSONKit 创建的 NSDictionary 中正确填充 UITableView NSArray?

无法创建 Plist 文件。 iOS+NSDictionary+JSON