textFieldsからフェッチしたすべての値から辞書を作成します。このようになります、
NSDictionary *dictionary = @{@"trailer":@{@"window":@"broken", @"sidesteps":@"missing", @"tractor": @{@"window":@"broken",@"sidesteps":@"missing"}, @"tire":@{@"tire1" : @{@"pressure" : @"120", @"rim":@"good"}}}};
出力:
dictionary = {
"trailer": {
"window": "broken",
"sidesteps": "missing",
"tractor": {
"window": "broken",
"sidesteps": "missing"
},
"tire": {
"tire1": {
"pressure": "120",
"rim": "good"
}
}
}
}
を使用NSMutableDictionary
して、同様の構造を動的に作成できます。複数の可変辞書を作成し、それを別の辞書のオブジェクトとして追加して、上記の結果を得ることができます。
JSONデータに変換するには、これを行うことができます。
NSError *error;
NSData *postData = [NSJSONSerialization dataWithJSONObject:dictionary options:NSJSONWritingPrettyPrinted error:&error];
データを表示するために文字列に変換する場合は、
NSString *jsonString = [[NSString alloc] initWithData:postData encoding:NSStringEncodingConversionAllowLossy];
NSLog(@"jsonString = %@", jsonString);
このpostbodyをhttpリクエストに設定してサーバーに渡す場合は、次のように設定できます。
[urlRequest setHTTPBody:postData];