JQuery Web クライアントと Objective C iPhone APP の両方を提供する Symfony2 プロジェクトがあります。
JQuery は、urlencoded データをサーバーに適切に送信します。を使用して Symfony2 コントローラーで適切にアクセスされるデータ$this->getRequest()->get('myKey');
。
そのため、データは で送信されapplication/x-www-form-urlencoded
ます。
Symfony コントローラー (これはたまたまシステムの API 全体であり、前に説明した形式で約 200 の AJAX 呼び出しがあります) を変更しないために、Objective C がまったく同じ方法でデータを送信するようにしたいと考えています。 .
部分的に取得しています。つまり、単純な NSDictionary を URI パラメータ形式に変換する方法を知っています。これがコードになります (Michael Sivolobov に感謝)。
NSMutableArray* parametersArray = [[[NSMutableArray alloc] init] autorelease];
[dict enumerateKeysAndObjectsUsingBlock:^(id key, id obj, BOOL *stop) {
[parametersArray addObject:[NSString stringWithFormat:@"%@=%@", key, obj]];
}];
NSString* parameterString = [parametersArray componentsJoinedByString:@"&"];
some more complex
しかし、私が知っている問題は、同様の方法でデータを変換する方法を知ることです。ネストされた NSArray や NSDictionary など (JSON を扱う場合は非常に一般的)。Objective CでそのようなデータをURL(key1 = value1&key2 = value2など)に変換する方法を知っている人はいますか??
編集: URL で送信する必要があるデータの例。
NSArray *myArray = [NSArray arrayWithObjects: @"Value2", @"Value3", nil];
NSDictionary *myDict = [NSDictionary dictionaryWithObjectsAndKeys: @"Value1", @"key1", myArray, @"Value2"];
JSONの何か{"key1": "value1", "key2": ["value2", "value3"]}
Objective C でその構造を取得し、それを Http POST に渡す前に URLencode に変換する最良の方法は何ですか? JSONまたはCocoaメソッドがあると思っていましたが、何もありません...