1

我通过以下方式从 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] => 测试 option2 [title] => 测试标题 [option1] => 测试 option1 )

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

4

1 回答 1

0

我不确定这里的问题是什么,在您可以在 PHP 中对这些数据执行任何操作之前,您必须将其转换为数组,看来 CakePHP 请求处理程序会自动为您执行此操作。

如果您真的想要原始的 json ,请json_encode()再次返回。

于 2013-02-25T09:44:02.423 回答