gpt4 book ai didi

php - Symfony JsonResponse 与序列化器

转载 作者:可可西里 更新时间:2023-11-01 13:49:15 26 4
gpt4 key购买 nike

我有一个小问题。也许有人有想法。

我按以下方式使用 Serializer。函数 json_encode 被应用了两次的问题。

首先当我调用 $serializer->serialize($post, 'json');

第二次在$response->setData();

所以,为了解码我需要调用函数两次。

有什么想法吗?

$encoders = [
new JsonEncoder()
];
$normalizer = new ObjectNormalizer();
$normalizer->setCircularReferenceHandler(function ($object) {
return $object->getId();
});
$normalizers = [$normalizer];
$serializer = new Serializer($normalizers, $encoders);

$response = new JsonResponse();
$response->setData([
'status' => true,
'data' => $serializer->serialize($post, 'json')
]);

return $response;

最佳答案

该对象被编码两次,因为您使用了 jsonresponse,请改用简单的响应。此外对整个数据进行编码,而不仅仅是其中的一部分。例如:

$responseData = [
'status' => true,
'data' => $post
];

$response = new Response(
$serializer->serialize($$responseData, 'json'),
Response::HTTP_OK,
['Content-type' => 'application/json']
);

return $response:

希望对你有帮助

关于php - Symfony JsonResponse 与序列化器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40073032/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com