话不多上直接上代码!
(原代码)
<?php
$json = file_get_contents('data.json');
$data = json_decode($json,true);
var_dump($data); //返回值为 NULL
var_dump(json_last_error()); // 返回值为 int(4)
?>
(修改后)
<?php
$json = file_get_contents('data.json');
$json=preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $json);
$data = json_decode($json,true);
var_dump($data);
var_dump(json_last_error());
?>
补充知识点
json_last_error()比较常见的是整数4, 是json字符串在json_decode之前已不完整,所以语法错误。
那么一定是客户端提交的个别字符影响了json的格式。
小链接(超级好用,在线检测json文件内容符不符合规范)
参考文章:https://blog.csdn.net/qq_34206560/article/details/81006546