> 백엔드 개발 > PHP 튜토리얼 > WeChat에서 사용자 정보를 일괄적으로 가져오면 json 데이터를 얻을 수 있는데, json_decode를 사용하여 배열로 변환하면 null이 반환됩니다(해결됨)

WeChat에서 사용자 정보를 일괄적으로 가져오면 json 데이터를 얻을 수 있는데, json_decode를 사용하여 배열로 변환하면 null이 반환됩니다(해결됨)

WBOY
풀어 주다: 2023-03-02 10:44:01
원래의
1306명이 탐색했습니다.

<code>https_request是调用第三方接口的方法。</code>
로그인 후 복사
로그인 후 복사

打印$output是有值的,能看到access_token,但是打印$jsoninfo的时候就为空了,所以后面的返回access_token也获取不到

<code>        $output =$this->https_request($url);
            $jsoninfo = json_decode($output, true);
            $access_token = $jsoninfo["access_token"];
            return $access_token; 
            
</code>
로그인 후 복사
로그인 후 복사

问题已解决
原因:在获取第三方接口的方法中,已经有json_decode了

回复内容:

<code>https_request是调用第三方接口的方法。</code>
로그인 후 복사
로그인 후 복사

打印$output是有值的,能看到access_token,但是打印$jsoninfo的时候就为空了,所以后面的返回access_token也获取不到

<code>        $output =$this->https_request($url);
            $jsoninfo = json_decode($output, true);
            $access_token = $jsoninfo["access_token"];
            return $access_token; 
            
</code>
로그인 후 복사
로그인 후 복사

问题已解决
原因:在获取第三方接口的方法中,已经有json_decode了

也就是说 json_decode 失败了。
json_decode 之后用 json_last_error() 函数看一下是什么错误。

<code>1. json字符串必须以双引号包含
$output = str_replace("'", '"', $output);
2. json字符串必须是utf8编码
$output = iconv('gbk', 'utf8', $output);
3.不能有多余的逗号 如:[1,2,]
用正则替换掉,preg_replace('/,\s*([\]}])/m', '$1', $output)</code>
로그인 후 복사

已找到问题,个人原因

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