1

我正在编写一个处理图片相册的应用程序。

我有以下列出专辑的 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"
    },
  ]
}

搜索stackoverflow,我发现了一些看起来像好的构建块的东西

categories = [albums valueForKeyPath:@"@distinctUnionOfObjects.Category.Name"];

但这显然只会生成 NSStrings 的 NSArray。我想要的是一个 NSDictionaries 的 NSArray,其中有两个对象,键为“id”和“Name”。如果没有嵌套 if 循环的穷人/蛮力方法,我似乎无法将它们放在一起来获得我想要的东西。我想我正在为 NSDictionary 或 NSArray 类寻找一些实用方法,可以帮助我更快地做到这一点。

任何帮助表示赞赏,谢谢。

4

1 回答 1

0

为什么不直接使用 JSON 解析器?它应该给你你想要的。

http://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSJSONSerialization_Class/Reference/Reference.html

于 2012-04-12T04:14:40.730 回答