我有一个 Symfony2 项目,它同时为 JQuery Web 客户端和 Objective C iPhone APP 提供服务。
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
数据。例如嵌套的 NSArrays 和 NSDictionarys(在使用 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"]}
在将其传递给 Http POST 之前,Objective C 中获取该结构并将其转换为 URLencode 的最佳方法是什么?我以为会有一些 JSON 或 Cocoa 方法......但是什么都没有......