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

PHP中file_get_contents读取JSON后json_decode返回null的解决咨询

解决json_decode返回null的问题

第一步:精准定位错误原因

先确认json_last_error_msg()返回的具体错误信息,这是排查的核心:

$str = file_get_contents('jsondump.json');
$json = json_decode($str);
echo json_last_error_msg(); // 输出错误信息,根据结果针对性处理

针对常见问题的处理方案

1. 移除UTF-8 BOM头

UTF-8 BOM是隐形的开头字符,会导致JSON解析失败,即使编码检测显示为UTF-8也可能存在:

$str = file_get_contents('jsondump.json');
$str = preg_replace('/^\x{FEFF}/u', '', $str); // 移除BOM
$json = json_decode($str);

2. 清理无效空白字符

换行符本身不影响JSON解析,但如果存在全角空格、特殊制表符等无效空白,可统一过滤:

$str = file_get_contents('jsondump.json');
$str = preg_replace('/\s+/', ' ', $str); // 替换所有空白为普通空格
$json = json_decode($str);

3. 验证JSON语法正确性

将文件内容复制到本地JSON校验工具(或直接手动检查),确认:

  • 引号是否配对(必须是英文双引号)
  • 布尔值是否为小写true/false(JSON不支持大写或其他拼写)
  • 数组/对象末尾是否有多余逗号
  • 实际文件中不存在示例里的...占位符

4. 排查文件读取完整性

用var_dump($str)确认读取的内容和JSON文件完全一致,没有截断情况;如果文件过大,可临时调整内存限制:

ini_set('memory_limit', '256M');
$str = file_get_contents('jsondump.json');
$json = json_decode($str);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 06:03:21