You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将PHP中的JSON字符串转换为AJAX请求可用的合法转义格式

问题原因

你遇到的报错本质是语法冲突:PHP存储的原始JSON字符串内部包含大量双引号,直接输出到被双引号包裹的JS字符串中时,JSON内部的双引号会提前闭合JS的字符串边界,导致JS解析代码时语法错误,提示属性缺失。

解决方案

方案1:最优方案,直接输出JSON为JS对象

合法的JSON本身符合JS对象语法规范,不需要额外包裹为字符串,直接输出即可,完全避免转义问题:

<script>
var settings = {
  "url": "https://example.com/update",
  "method": "POST",
  "timeout": 0,
  // 直接输出JSON内容,不需要手动加外层双引号
  "data": <?php echo $data;?>,
  "dataType": "json",
  // 传递JSON请求体需要指定contentType
  "contentType": "application/json"
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
</script>

方案2:匹配需求,生成转义后的JSON字符串

如果你确实需要将JSON作为字符串传入data参数,直接用PHP内置的json_encode()函数处理即可,该函数会自动转义所有双引号、特殊字符,输出完全符合JS语法规范的字符串,也能兼容你示例中的多语言内容:

<script>
var settings = {
  "url": "https://example.com/update",
  "method": "POST",
  "timeout": 0,
  // json_encode会自动添加外层双引号、转义内部双引号,不需要手动处理
  "data": <?php echo json_encode($data);?>,
  "dataType": "json",
};

$.ajax(settings).done(function (response) {
  console.log(response);
});
</script>

内容的提问来源于stack exchange,提问作者Vidhi Sharma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 22:48:00