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

PHP中json_decode遇特殊字符失效问题求助

解决json_decode因特殊字符返回NULL的问题

问题原因

你的JSON文件存在无效转义字符:正则表达式里的[\.]中的反斜杠\属于JSON特殊字符,必须用另一个反斜杠转义(即写成\\)。原JSON未正确转义,导致格式不合法,json_decode无法解析,返回NULL。

解决方案

1. 修正JSON文件内容

将creds2.json中的每个\替换为\\,修正后内容如下:

{
  "TEMP_REGEX": "[0-9]{2,3}[\\.]{1}[0-9]{1}",
  "HUMI_REGEX": "[0-9]{2,3}[\\.]{1}[0-9]{1}"
}

注:正则里的[\.]可简化为\.(字符集内.无需转义),简化后JSON需写成"[0-9]{2,3}\\.{1}[0-9]{1}",同样要保证反斜杠转义为\\

2. 添加错误排查代码

在PHP代码中加入json_last_error_msg(),可快速定位解析失败的具体原因:

$json_file_path = 'creds2.json';
$json_contents = file_get_contents($json_file_path);
$data = json_decode($json_contents, true);

if ($data === null) {
    echo 'JSON解析失败:' . json_last_error_msg();
} else {
    var_dump($data);
}

若为转义问题,会输出类似JSON解析失败:Syntax error的提示,帮助快速定位。

验证结果

修正JSON后执行PHP代码,即可正常解析出数组,var_dump输出:

array(2) {
  ["TEMP_REGEX"]=>
  string(21) "[0-9]{2,3}[\.]{1}[0-9]{1}"
  ["HUMI_REGEX"]=>
  string(21) "[0-9]{2,3}[\.]{1}[0-9]{1}"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 02:57:31