从 NSDictionary 对象的 NSArray 中,如何获取唯一的 NSArray
Posted
技术标签:
【中文标题】从 NSDictionary 对象的 NSArray 中,如何获取唯一的 NSArray【英文标题】:From NSArray of NSDictionary objects, how to get an NSArray of uniques 【发布时间】:2012-04-12 03:43:22 【问题描述】:我正在编写一个处理图片相册的应用程序。
我有以下列出专辑的 JSON 文档。
"Albums": [
"id": 1234,
"Title": "My Birthday 2008",
"Category":
"id": 0,
"Name": "Birthdays"
,
"id": 5678,
"Title": "Disneyland Trip 2010"
"Category":
"id": 1,
"Name": "Trips"
,
]
如您所见,相册位于类别中。
我使用 NSJSONSerialization 类将其引入到一个 NSDictionary 对象中,该对象包含一个 NSDictionaries 的 NSArray(根据上述 JSON 的“模式”)。
由此,我想生成一个包含唯一 Categories NSDictionary 对象的 NSArray。比如:
"Categories": [
"id": 0,
"Name" : "Birthdays"
,
"id": 1,
"Name" : "Trips"
,
]
搜索***,我发现了一些看起来像是很好的构建块的东西
categories = [albums valueForKeyPath:@"@distinctUnionOfObjects.Category.Name"];
但这显然只会生成一个 NSString 的 NSArray。我想要的是一个 NSDictionaries 的 NSArray,其中有两个对象,键为“id”和“Name”。如果没有嵌套 if 循环的穷人/蛮力方法,我似乎无法将它们放在一起来获得我想要的东西。我想我正在为 NSDictionary 或 NSArray 类寻找一些实用方法来帮助我更快地做到这一点。
感谢您的帮助。
【问题讨论】:
使用 JSON / SBJSON / JSON 解析器来做这个工作,这里不应该使用 KVC @steven,你能不能显示一些工作代码。 【参考方案1】:为什么不直接使用 JSON 解析器?它应该给你你想要的。
http://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSJSONSerialization_Class/Reference/Reference.html
【讨论】:
我遗漏了一整节提到我已经在使用 NSJSONSerialization!我会更新原来的帖子。谢谢你的帖子。以上是关于从 NSDictionary 对象的 NSArray 中,如何获取唯一的 NSArray的主要内容,如果未能解决你的问题,请参考以下文章
从 NSDictionary 到 NSString 的所有键和对象
从 NSDictionary 对象的 NSArray 中,如何获取唯一的 NSArray