2017-01-25 5 views
0

、この問題を整理するために私を助けてください、私はこのディクショナリの値を配列に入れる方法は?私は客観-Cに新しいです

Async JSON: (
     { 
     "cus_name" = cus1; 
     "cus_id" = 001; 
    }, 
     { 
     "cus_name" = cus2; 
     "job_id" = 002; 
    } 
) 

のような辞書何かを持っているしかし、私は必要とする。このように、出力と同じ:

Async JSON:(
     (
     cus1, 
     001 
    ), 
     (
     cus2, 
     002 
    ) 
) 

してくださいこれを整理する方法私を助け、これは私が使用しているコードです:あなたはここで間違いを犯している

NSData *cityData = [NSData dataWithContentsOfURL:[NSURL URLWithString:strURL]]; 

NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:strURL]]; 

__block NSDictionary *json; 
[NSURLConnection sendAsynchronousRequest:request 
            queue:[NSOperationQueue mainQueue] 
         completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { 
          json = [NSJSONSerialization JSONObjectWithData:data 
                    options:0 
                    error:nil]; 
          NSLog(@"Async JSON: %@", json); 
         }]; 
+1

あなたのレスポンスは辞書ではありません。辞書の配列をネストされた配列に変換したいと思います。右? –

+0

@Nirav Dありがとう、ええ、あなたは正しいです、私は上記のように入れ子配列で出力が必要です。 – Tela

+0

@Robそれは私が持っている必要があります、thats、これを整理するのに役立ちます。 – Tela

答えて

2

、あなたのJSONレスポンスはDictionaryではありませんそれは辞書の配列です、それをネストした配列に変換したい場合は、このようにしてください。

__block NSMutableArray *nestedArray = [NSMutableArray array]; 
[NSURLConnection sendAsynchronousRequest:request 
           queue:[NSOperationQueue mainQueue] 
        completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) { 
         NSArray *json = [NSJSONSerialization JSONObjectWithData:data 
                   options:0 
                   error:nil]; 

        for (NSDictionary* dic in json) { 
         NSMutableArray *subArray = [NSMutableArray array]; 
         [subArray addObject:[dic objectForKey:@"cus_name"]]; 
         if ([dic objectForKey:@"cus_id"]) { 
          [subArray addObject:[dic objectForKey:@"cus_id"]]; 
         } 
         if ([dic objectForKey:@"job_id"]) { 
          [subArray addObject:[dic objectForKey:@"job_id"]]; 
         } 
         [nestedArray addObject:subArray]; 
        } 

        }]; 

注:NSURLConnectionのようは、あなたがこの方法のようNSURLSession使用することを示唆、私は推奨されません。

NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]]; 

[[session dataTaskWithRequest:request 
     completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) { 

    // do stuff and access the data here 

}] resume]; 
+0

ありがとうあなたNiravしかし、私はこの行でエラーが発生しました:nestedArray.addObject(subArray)、それはaddobject NSMutableArrayのオブジェクト型に見つかりません – Tela

+0

@テラ編集された答えを確認します。 –

+0

ありがとうございました。あなたのご協力ありがとうございます。 – Tela

関連する問題