查看报错原因:
$data= json_decode($json);
var_dump($data);
if ($data=== null) {
echo “JSON 解析失败,错误信息:” . json_last_error();
}
JSON 解析失败,错误信息:4
案例1:
// 打印原始数据
var_dump($data);
string(169) “[{"s_id":"21857","s_name":"谢先生","s_tel":"18700001234"}]”
步骤1:我们可以使用htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。
// htmlspecialchars_decode转义(1)
$data= htmlspecialchars_decode($data);
var_dump($data);
string(121) “[{"s_id":"21857","s_name":"谢先生","s_tel":"18700001234"}]”
// " 说明字符串没有完全转义
步骤2:
// htmlspecialchars_decode转义(2)-> 如果是前端多次转义后的json,一次转义后几下可能还会出现null
$data= htmlspecialchars_decode($data);
var_dump($data);
[{“s_id”:”21857″,”s_name”:”谢先生”,”s_tel”:”18700001234″}]
步骤3:
// json解析
$sets = json_decode($sets);
var_dump(strpos($sets, ‘"’)));
[“s_id”=> “21857”,”s_name”=>”谢先生”,”s_tel”=>18700001234]
相关参数
htmlspecialchars_decode()
函数将其处理回原来的字符串
strip_tags()
去除字符串中的 HTML、XML 以及 PHP 的标签,获取纯文本内容
htmlspecialchars()
反函数把预定义的字符转换为 HTML 实体
serialize
把对象转化为二进制的字符串
unserialize
反串行化一个对象
addslashes
指定的预定义字符前添加反斜杠
stripslashes
去掉反斜线字符