尝试从 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 访问信息的主要内容,如果未能解决你的问题,请参考以下文章
使用 Swift 将 JSON 字符串转换为 NSDictionary
使用带有数组的 NSDictionary 创建 JSON 文件
NSDictionary - 从返回的 JSON 服务中解析项目