2

そのjSon応答をどのように割り当てることができNSArrayますか?

jSON:

[{"city":"Entry 1"},{"city":"Entry 2"},{"city":"Entry 3"}]

コード:

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    NSArray *jsonData = [responseData objectFromJSONData];

    for (NSDictionary *dict in jsonData) {
        cellsCity = [[NSArray alloc] initWithObjects:[dict objectForKey:@"city"], nil];
    }

}
4

1 に答える 1

2

シリアライザーに組み込まれているAppleを介してJSONをオブジェクトに取り込むことができます。

NSError *error = nil;
NSArray *jsonArray = [NSJSONSerialization JSONObjectWithData:aData options:NSJSONWritingPrettyPrinted error:&error];
if(error){
    NSLog(@"Error parsing json");
    return;
} else {...}

したがって、外部フレームワークIMHOを使用する必要はありません(パフォーマンスが必要な場合は、JSONKitは、NSJSONSerializationよりも実際に25〜40%高速です。

編集

あなたのコメントを通して私はこれがあなたが望むものだと思います

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    //First get the array of dictionaries
    NSArray *jsonData = [responseData objectFromJSONData];
    NSMutableArray *cellsCity = [NSMutableArray array];
    //then iterate through each dictionary to extract key-value pairs 
    for (NSDictionary *dict in jsonData) {
        [cellsCity addObject:[dict objectForKey:@"city"]];
    }

}

于 2013-02-15T07:46:39.570 に答える