json_decode 返回值为null

json_decode返回值为null有很多种情况

1.返回的json 有bom头

2.返回的json最后有逗号

3.json格式不正确

等 

这些解决方案网上都有不一一阐述解决方案

但是我发现了另一种 导致 为null的 原因

使用

$curl = curl_init() ;
curl_setopt( $curl, CURLOPT_CUSTOMREQUEST, $method) ;
curl_setopt( $curl, CURLOPT_URL, $url) ;
curl_setopt( $curl, CURLOPT_HTTPHEADER, $headers) ;
curl_setopt( $curl, CURLOPT_FAILONERROR, false) ;
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true) ;
curl_setopt( $curl, CURLOPT_HEADER, true) ;
curl_setopt( $curl, CURLOPT_POSTFIELDS, $bodys) ;
$a = curl_exec( $curl) ;


获取到的json用postman打印很正常 但是 使用json_decode 就一直 返回null 然后一直整了一下午 使用各种网上的方法都不行


这个时候我点了转化成html格式  却发现  json的字符串前 加了 返回头



检查代码之后才发现 CURLOPT_HEADER 的参数设置为了true


解决方案:

将该参数设置为false即可 json_decode 成功

猜你喜欢

转载自blog.csdn.net/qq_36638599/article/details/80249740