2011-12-29 13 views
3

私はjsonコレクションを持っています。完全に1レベル深く解析することができますが、メインコレクションの各アイテムにコレクションがあります。私は...私はメインコレクションで行ったように、サブコレクションを取得するための「アイテム」をアクセスする方法は非常にわからないios jsonサブコレクションを解析する

NSString *response = [request responseString]; 
NSDictionary *json = [response JSONValue]; 

NSArray *items = [json valueForKeyPath:@"item"]; 

for (id item in items) 
{ 
    mainObject.name = [item objectForKey:@"name"]; //this works fine 
    // How do I get sub collection from item? 
} 

JSONのいくつか:そこ例で

{"item": 
    { 
     "available_at"  : null, 
     "created_at"  : "2011-12-09T19:52:23Z", 
     "lo_id"   : 30, 
     "id"    : 24, 
     "merchant_id"  : 1, 
     "order_id"   : 25, 
     "reach_local_link" : null, 
     "status"   : null, 
     "token"   : "12-258847891-1", 
     "updated_at"  : "2011-12-09T19:52:23Z", 
     "url"    : "api/dir/v1/item/12-258847891-1/print", 
     "subitem1"   : 
      { 
      "area"  : "local", 
      "broker_id" : "", 
      "broker_id" : null, 
      "category" : 
       { 
        "category":.... 

、サブアイテム1のような複数のサブアイテムである可能性があります。私はそれらのコレクションを取得し、現在のものの中に別のループを持っている必要があります。

+0

あなたのJSONの外観を少し入れてください – Sam

+0

にはいくつかのjsonが含まれています – Jesse

答えて

0

itemは、JSONオブジェクトの1つの場合は、単に辞書または配列になります。たとえば、あなたはこれを行うことができるはず:あなたは一人としてそれを使用することができるように

NSDictionary *subitem1 = [item objectForKey:@"subitem1"]; 

それは、単にそこにNSDictionaryます。

私は本当にそれはそれが簡単にそれで動作するようになり、あなたのJSONオブジェクトのObjective-Cの表現をロギングお勧めします。強く、オブジェクトの種類を確認することをお勧めします

NSLog(@"%@", json); 

警告をしますそれらが実際に辞書、文字列または配列であると仮定する前に読み込みます。そうでない場合、アプリケーションがクラッシュすることに気づくでしょう。

+0

ええ、前に遊んで、サブアイテム1を辞書に読み込む方法を考えましたが、サブアイテム1内のすべてのアイテムのキー/ 。私が必要とするのは、サブアイテム1の配列です。はい、私はすべてのものをNSLogしています...私はちょうど読んで簡単に私の例を凝縮 – Jesse

+0

NSDictionaryのキーを反復することができます: 'NSString * key、[subitem1 objectForKey:key]); ' –

+0

実際、サブアイテム1は実際にサブアイテムになり、各サブアイテムは「サブアイテム」になります。 NSArrayのアイテムと同じように、サブアイテム – Jesse