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 - 需要获取关键子元素的值的主要内容,如果未能解决你的问题,请参考以下文章

如何使用保留关键字访问 NSDictionary 元素?

如何获取 NSDictionary 中的第一个元素?

如何通过键中的子字符串过滤 NSDictionary?

来自 xml 的 NSDictionary 元素

可以在关键帧中设置子元素的属性吗

字典:NSDictionary的应用举例