有我的功能:
private function responseJson($datas, $code)
{
$serializer = $this->container->get('jms_serializer');
$context = new SerializationContext();
$context->setSerializeNull(true);
$response = new Response($serializer->serialize($datas, 'json', $context->enableMaxDepthChecks()), $code);
$response->headers->set('Content-Type', 'application/json');
return $response;
}
我使用symfony的序列化程序组件。这是我的服务器在调用此函数时所执行的操作。客户端需要一个数组,但服务器返回一个对象。是否可以强制返回数组?
感谢您的回答!
答案 0 :(得分:1)
根据我在JsonSerializationVisitor中所读到的内容,实际编码是使用json_encode完成的:
$result = @json_encode($this->getRoot(), $this->options);
正如我在this post中所读到的那样,无法使用json_encode强制创建数组。
如果您的输入数据是没有索引的数组,那么json_encode将生成一个数组。这意味着如果数据中的密钥名称很重要,则无法将数组返回给客户端。