向CakePHP发布JSON对象的NSMutableURLRequest显示为Array

时间:2013-02-25 09:36:41

标签: xcode json cakephp

我通过以下方式从Xcode发送JSON数据:

NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:
        @"Test title", @"title",
        @"Test option1", @"option1",
        @"Test option2", @"option2", nil];
NSError *error;
NSData* jsonData = [NSJSONSerialization dataWithJSONObject:dict options:kNilOptions error:&error];

NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
NSURL *url = [NSURL URLWithString:@"http://somedomain.com/posts/add"];
[request setURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[request setHTTPBody:jsonData];

[NSURLConnection connectionWithRequest:request delegate:self];

我按照以下方式将CakePHP中收到的数据写入文件:

public function add()
{
    if ($this->request->is('post'))
        if ($this->RequestHandler->requestedWith('json')) {
            file_put_contents('debug.txt', print_r($this->request->data, true));
        }
    }
}

并且文件中的数据('debug.txt')如下所示:

阵 (     [option2] =>测试选项2     [title] =>测试题目     [option1] =>测试选项1 )

我知道发送的数据是JSON格式的,我希望收到的数据显示为JSON格式,而不是'debug.txt'中的数组。这是一个正确的假设,如果是这样,会出现什么问题?

1 个答案:

答案 0 :(得分:0)

我不确定这里有什么问题,在用PHP做任何事情之前你必须将它转换成数组,看来CakePHP请求处理程序正在为你自动执行此操作。

如果你真的想让原来的json再次回归json_encode()