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

PHP读取JSON语言文件返回NULL问题求助

解决JSON解码返回NULL的问题

你的问题根源在于逐行读取JSON文件后单独解码每一行——JSON是一个完整的结构化数据,除非你的文件是每行一个独立的JSON对象(JSON Lines格式),否则单独一行的内容是不完整的JSON,自然会让json_decode返回NULL。

给你两个可行的解决方案:

方案1:一次性读取整个文件(推荐)

用file_get_contents直接读取整个文件内容,再进行解码,这是处理JSON文件最简洁的方式:

// 读取整个JSON文件内容
$jsonContent = file_get_contents("./language/english/english.json");
// 解码为关联数组
$data = json_decode($jsonContent, true);

// 输出结果
var_dump($data);

方案2:逐行读取后拼接完整内容再解码

如果一定要用fopen系列函数,需要先把所有行拼接成完整的JSON字符串,再解码:

$file = fopen("./language/english/english.json", "r");
$jsonContent = '';

// 逐行读取并拼接
while(!feof($file)) {
    $jsonContent .= fgets($file);
}
fclose($file);

// 解码并输出
$data = json_decode($jsonContent, true);
var_dump($data);

额外调试技巧

以后遇到json_decode返回NULL的情况,可以用json_last_error_msg()获取具体错误信息,帮你快速定位问题,比如:

$data = json_decode($jsonContent, true);
if ($data === null) {
    echo 'JSON解码失败:' . json_last_error_msg();
}

内容的提问来源于stack exchange,提问作者P. Nick

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:30:52