AI编程助手
AI免费问答

使用 JsonResponse 正确显示双引号

花韻仙語   2025-08-03 21:44   682浏览 原创

使用 jsonresponse 正确显示双引号

在使用 PHP 和 Symfony 构建 API 时,经常需要返回包含错误信息的 JSON 响应。JsonResponse 组件是实现这一目标的常用工具。然而,当错误信息中包含双引号时,可能会遇到转义字符 \ 的问题,导致返回的 JSON 数据不够清晰。

例如,当你想返回类似 "Variable "user" is invalid" 这样的错误信息时,JsonResponse 可能会自动将双引号转义为 \",最终的 JSON 响应变成 "description": "Variable \"user\" is invalid"。虽然这种转义是符合 JSON 规范的,但在某些情况下,我们可能希望避免这种转义,使 JSON 数据更易于阅读。

解决这个问题最简单的方法是使用单引号代替双引号,或者将需要强调的部分用其他符号包裹。

以下是一个示例:

<?php

use Symfony\Component\HttpFoundation\JsonResponse;

class ErrTC
{
    public function error($codeError, $message, $statusCode): JsonResponse
    {
        return new JsonResponse([
            'code' => $codeError,
            'description' => $message
        ], $statusCode);
    }
}

// 使用单引号代替双引号
$message1 = "Variable 'user' is invalid";
$response1 = (new ErrTC)->error('AUTH_ERROR', $message1, 401);
echo $response1->getContent();
// 输出: {"code":"AUTH_ERROR","description":"Variable 'user' is invalid"}


// 使用其他符号包裹
$message2 = "Variable `user` is invalid";
$response2 = (new ErrTC)->error('AUTH_ERROR', $message2, 401);
echo $response2->getContent();
// 输出: {"code":"AUTH_ERROR","description":"Variable `user` is invalid"}

总结:

通过简单地修改消息字符串,使用单引号或反引号代替双引号,可以有效避免 JsonResponse 中的双引号转义问题,从而生成更清晰、更易于阅读的 JSON 响应。这种方法简单易行,可以显著提高 API 的用户体验。请根据实际需求选择合适的替代方案。

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。