今天群上的照逼在群上问JSON返回为空怎么办,工具校正显示是正常的。我试了试代码,下面是我写的代码

<?php
$json=file_get_contents("https://www.52bz.la/json");
echo "<pre>";
var_dump(json_decode($json,1)); //return null
var_dump(json_last_error()); // return 4

返回的是4,4的意思是json格式错误
发现确实有问题以前我也遇到过不过我遇到的json都是缺少“'”引号或者多了“\”反斜杠
通常来说json就这几个问题,如果不是字符的问题 那应该就剩UTF8 DOM了吧
尝试改了一下代码:

<?php
$json=file_get_contents("https://www.52bz.la/json");
$json=preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $json);
echo "<pre>";
var_dump(json_decode($json, 1));
var_dump(json_last_error());

解析成功!!!

如果大家有josn问题,建议用json_last_error这个函数排查一下

最后修改:2023 年 07 月 25 日
您的赞赏是对我最大的支持。