ホームページ > バックエンド開発 > PHPチュートリアル > WeChatからユーザー情報を一括取得するとjsonデータが取得できるのですが、json_decodeで配列に変換するとnullを返してしまいます(解決しました)

WeChatからユーザー情報を一括取得するとjsonデータが取得できるのですが、json_decodeで配列に変換するとnullを返してしまいます(解決しました)

WBOY
リリース: 2023-03-02 10:44:01
オリジナル
1311 人が閲覧しました

<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 までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート