我无法从控制器操作返回正确的 json。
现在,我正在使用 jms 序列化程序来序列化一个实体。像这样:
$serializedJobOrders = $serializer->serialize($jobOrders, 'json');
所以我有一个我想返回的 json 字符串。它实际上是一个 json 对象数组:[{},{},{}]
之前,我只是在响应中使用了 setContent() 方法来返回 json。像这样:
$jsonResponse = new JsonResponse();
return $jsonResponse->setContent($serializer->serialize($jobOrders, 'json'));
但是,返回 json 数组存在安全问题。它应该是一个包含数组的对象。类似于 {data: [{},{},{}]}。不过,这就是我遇到麻烦的地方。
我不能这样做:
return new JsonResponse(array('data' => $serializedJobOrders));
因为这只会为“数据”属性创建一个转义字符串。然后我必须在客户端解析它。我认为这不是正确的做法。为了说明一下,这有点像:
{数据:“[{\u0022name\u0022:\u0022John\u0022},{\u0022name\u0022:\u0022John\u0022}]”}
如何返回正确的 json?所以它看起来像这样:
{data: [
{'name': 'john'},
{'name': 'john'},
{'name': 'john'}
]}