PHP使用json_decode结果为空白
  • 分类:杂七杂八
  • 发表:2021-12-07
  • 围观(1,504)
  • 评论(0)

问题描述:

1、前端使用的JS,对象通过JSON.stringify(result.detail)发送到后台;

2、后台使用助手函数data=input('date')接收到数据后,使用json_decode($data,true);转换为数据,结果为空白;

3、将$data直接print_r打印出来,也是正常的JSON格式,复制出来另写程序转换也是正常,但是在程序内转换时候就是空白。

尝试的方法:

1、替换\",json_decode(str_replace('\"','"',$mobileStr), true);不行;

2、变更字符编码iconv('GBK', 'UTF-8', $data);,结果也是不行;

3、说是有BOM头的,需要替换掉,json_decode(substr($info, 3), true);,结果也是不行;

最终方法:

还是字符的问题。

最终代码为:

json_decode(str_replace('"','"',$mobileStr), true);

注意:这里的&为了不让编辑器自动转换,使用了中文字符。

因为前端 JSON.stringify 在转换时会把双引号(”)转换为 " ,不管怎么打印,显示的时候都会自动转换成引号,但实际上他却是 " ,需要把这个转换过来,就能恢复成正常的JSON格式了。

Top