2011-10-28 6 views
2

に辞書のJSON配列を変換し、私は、キー/値のペアのオブジェクトの配列であることを理解してJSON、で次のような構造を持っている:のObjective-C:だから、NSDictionaryの

{ 
"notification": [ 
    { 
     "uid": "20", 
     "count": "4" 
    }, 
    { 
     "uid": "48", 
     "count": "0" 
    }, 
    { 
     "uid": "49", 
     "count": "0" 
    }, 
    { 
     "uid": "53", 
     "count": "0" 
    } 
] 
} 

SBJsonでこれを解析しますそれぞれ1つのキーと値のペアを持つ辞書の集合となります。

私は、これらの辞書をすべて、多くのキーと値のペアを持つ1つの辞書に「埋め込み」たいと思っています。途中で重複を心配する必要はありません。

これを行うにはどうすればいいですか?どのようにしてNSDictionaryを反復処理し、各アイテムにアクセスしてキーと値の両方を引き出すことができますか?

これに関するご意見はありますか?

ありがとうございました。

--Conor

答えて

7

NSDictionaryの既存の配列を繰り返し処理するだけです。これはJSONの便利な機能です。フィード文字列から使いやすいデータ構造を簡単に取得できます。

NSArray *notifications = [[theFeedString JSONValue] objectForKey:@"notification"]; 
// or whatever JSON helper you are using 
for (NSDictionray *dict in notifications) { 
    NSInteger uid = [[dict objectForKey:@"uid"] intValue]; 
    NSInteger count = [[dict objectForKey:@"count"] intValue]; 
    // do something with uid and count 
} 
+1

それはありがとうございました..かなり明白で簡単ですが、私の防衛では、それは金曜日です – conor

0
  1. 性質uidcountとカスタムクラスの通知を作成します。
  2. NSDictionary/NSArrayを反復するには、forステートメントを使用します。
(辞書のためにあなたが例えば、 uidと同じになり キーを作成することができます)新しい配列または辞書にそのオブジェクトを追加 を作成し、各 反復
  • jsonから解析されたデータを使用して通知オブジェクトを初期化