您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

json字符串无法解析的问题

2024/2/19 15:19:15发布34次查看
就是我做了一个php接口,返回的数据是json格式(数据格式没问题,且编码是utf8格式);但调用时无法解析这个json格式的数据,但我把返回的数据复制成字符串,就可以解析了。找了半天,发现在输出的源码前面多了空白,但是这个空白不能通过trim 去空格的方式解决,模拟请求接口,用了去bom头的方式 trim($result, \xef\xbb\xbf); 还是无法解析,请教一下有遇到过这个问题的吗
回复讨论(解决方案) 那就是你json_encode输出那块没写好 有没有声明 header('content-type:application/json;charset=utf-8');
应该是 bom 头的影响
$result = trim($result, \xef\xbb\xbf);
只是去除了 $result 中的 bom
并没有去除你 php 程序文件的 bom
建一新程序
echo bin2hex(file_get_contents('http://yourhost/api.php'));




j执行后就可看到是否有 bom
应该是 bom 头的影响
$result = trim($result, \xef\xbb\xbf);
只是去除了 $result 中的 bom
并没有去除你 php 程序文件的 bom
建一新程序
echo bin2hex(file_get_contents('http://yourhost/api.php'));




j执行后就可看到是否有 bom
应该是 bom 头的影响
$result = trim($result, \xef\xbb\xbf);
只是去除了 $result 中的 bom
并没有去除你 php 程序文件的 bom
建一新程序
echo bin2hex(file_get_contents('http://yourhost/api.php'));




j执行后就可看到是否有 bom
应该是 bom 头的影响
$result = trim($result, \xef\xbb\xbf);
只是去除了 $result 中的 bom
并没有去除你 php 程序文件的 bom
建一新程序
echo bin2hex(file_get_contents('http://yourhost/api.php'));




j执行后就可看到是否有 bom
可以看到有这些输出 前端有这些输出
2020efbbbf7b22737461747573223a302c226d657373616765223a225c75396138635c7538626
那应该怎么去掉文件里bom头呢
前面的 2020efbbbf
2020 表示有两个空格
efbbbf 不就是 bom 吗?
应该是 bom 头的影响
$result = trim($result, \xef\xbb\xbf);
只是去除了 $result 中的 bom
并没有去除你 php 程序文件的 bom
建一新程序
echo bin2hex(file_get_contents('http://yourhost/api.php'));




j执行后就可看到是否有 bom
   谢谢版主的热心回答,问题终于解决了    把所有相关文件都查了下 找到了包含bom头的文件 重新编辑了一下 可以解析json 了 notepad++可以将文件转为无bom格式
可以看下这篇日志:http://my.oschina.net/rain21/blog/384549
notepad++可以将文件转为无bom格式
可以看下这篇日志:http://my.oschina.net/rain21/blog/384549
     谢谢你的回答 我试试
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product