> 백엔드 개발 > PHP 튜토리얼 > json字符串无法解析的问题

json字符串无法解析的问题

WBOY
풀어 주다: 2016-06-20 12:42:58
원래의
1454명이 탐색했습니다.

就是我做了一个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

     谢谢你的回答 我试试
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿