NSDictionary - 需要获取关键子元素的值
Posted
技术标签:
【中文标题】NSDictionary - 需要获取关键子元素的值【英文标题】:NSDictionary - need to obtain value for key subelement 【发布时间】:2014-05-15 19:52:52 【问题描述】:我创建了一个名为“myData”的 NSDictionary 其中包含以下 JSON 响应:
listInfo = (
date = 1392157366000;
dateAsString = "02/11/2014 22:22:46";
id = 6;
address = 542160e0000c;
myLevel = 13;
,
date = 1392155568000;
dateAsString = "02/11/2014 21:52:48";
id = 5;
address = 542160e0000c;
myLevel = 13;
);
我需要检索每个 [dateAsString] 键/值对。 我试过: NSString *dateAsString=[[myData valueForKeyPath:@"dateAsString"][0] objectForKey:@"myData"];没有任何运气。
非常感谢任何建议。
【问题讨论】:
访问 json.org 并学习 JSON 语法。只需5-10分钟。然后看看你有什么。您错误地省略了转储中的前导
指示字典的开始。字典中唯一的元素是“listInfo”。该元素的值是一个 NSArray(如 ()
括号所示),该数组包含 2 个字典(由
括起来)。如果您一步一步地进行,则将其分解并提取数据非常容易。
【参考方案1】:
我认为这会奏效:
NSArray* dateStringArray = [listInfo valueForKeyPath:@"@unionOfObjects.dateAsString"]
我相信它会给你一个字符串数组。如果你需要把它塞回字典里,那应该很容易。
不清楚您的“myData”是什么样的......所以我使用了 listInfo 所示的字典数组。
【讨论】:
我认为“listInfo”是外部字典中的第一个也是唯一一个键,所以它类似于[myData valueForKeyPath:@"listInfo.dateAsString"]
。
其实[myData valueForKeyPath:@"listInfo.@unionOfObjects.dateAsString"]
这样的话
@stevesliva - 感谢您的回复。实际上,“myData”字典包含 listInfo 字典。
@Chuck - 谢谢 Chuck,这是我将使用的解决方案。
你想要的只是单个元素的路径?!以上是关于NSDictionary - 需要获取关键子元素的值的主要内容,如果未能解决你的问题,请参考以下文章