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クラスを使用して、これをNSDictionariesのNSArrayを含むNSDictionaryオブジェクトに取り込みました(上記のJSONの「スキーマ」ごと)。

これから、一意のカテゴリNSDictionaryオブジェクトのNSArrayを生成したいと思います。何かのようなもの:

{
  "Categories": [
    {
      "id": 0,
      "Name" : "Birthdays"
    },
    {
      "id": 1,
      "Name" : "Trips"
    },
  ]
}

Stackoverflowを精査して、良いビルディングブロックのように見えるものをいくつか見つけました

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

しかし、それは明らかにNSStringのNSArrayのみを生成します。私が欲しいのは、キー「id」と「Name」を持つ2つのオブジェクトを持つNSDictionariesのNSArrayにすることです。ネストされた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 に答える