HOMEPHP【PHP】json_decode()がnullを返す?解消するまでに試したこと【PHP】json_decode()がnullを返す?解消するまでに試したこと2020.02.08PHPBこんにちは、ryohei(@ityryohei)です!本記事では、PHPでjson_decode()した結果「NULL」になった際に、解消するまでに試したことをご紹介しています。「NULL」を返す原因はぞれぞれ異なると思いますので、こんなケースもあるんだな~くらいに見ていただいて、もし同じ方法で解決する内容であれば、私としてはうれしい限りです!では、解説していきます。json_decode()するとnullになる?今回発生したケースになります。外部のURLのJSONを取得し、取得した結果をダンプしてみます。内容を確認するつもりでダンプしているため、JSONを取得した後にやるべきことを頭の中でまとめながらブラウザの更新ボタンをぽちっとクリック。json_decode($url);var_dump($json)すると。「NULL」?最近仕事でプロブラムばかり書いて目が疲れているのかもしれません。URLにアクセスしてJSONファイルがブラウザ上で表示されることを確認し、再度ブラウザの更新ボタンをクリックします。実行結果NULLしかし、ブラウザには憎き「NULL」の文字が鎮座しています。何度更新しても「NULL」の文字が表示されます。え、なんで「NULL」?再度、ソースを見直します。引数の指定が足りないだけかもしれません。json_decode($url);var_dump($json)あ、第二引数指定するの忘れてる......。ソースを下記の用に修正します。true);var_dump($json)そして自信満々にブラウザの更新ボタンをクリックします。(実際には「F5」を押下しています。実行結果NULL実行結果は変わりません。何回か「F5」を押下してみましたが、何度やっても「NULL」「NULL」「NULL」「NULL」「NULL」です。しょうがないので、次の手を打ってみます。JSONのエラーメッセージを確認するPHPには便利な関数が用意されていて、直近で実行された「json_encode()」や「json_decode()」のエラーメッセージを表示することができるものがあります。json_last_error_msgです。(リンク先は「PHP.net」です。)エラーメッセージを見れば何かわかるかもしれない。先ほどのソースに一行追加して、ブラウザの更新ボタンをクリックします。error」と教えてくれてます。褒めたいところですが、困ったことに......このJSON、私の方で手を加えることはできません。別の開発会社がサーバーもファイルも管理しています。急ぎの仕事なので今から連絡して待つ、という時間はありません。前に同じJSONを使用して作成したサイトを見に行きます。ブラウザで新しいタブを開いてURLを叩きます。なんと、そのサイトではうまく情報を取ることができているではありませんか。試しに問題のJSONをまじまじと見てみます。JSONはエンコードされた状態で提供されています。下記は問題となっているJSONファイルの中身の抜粋です。キーや値は変更しています。}]"何やら「バックスラッシュ(もしくは円マーク)」が大量に書き込まれています。エスケープ文字ですね。して、JSONの値にエスケープ文字が含まれているのが原因かもしれない!エスケープ文字を取り除いてデコードしてみるPHPでスラッシュを取り除くことができる「stripslashes」という関数を通して、再度確認してみることにします。true);var_dump($json)気になる実行結果は。22:00:00"}]"ようやくJSONを正常に取得することができました。error」が発生していたんですね。原因がわかってすっきりです!開発元に今回のケースを伝えて、私は私で実装を進めていきます。最後にいかがでしたでしょうか。今回のようなケースはあまりないかと思いますが「json_decode()」の結果が「NULL」になる場合、一つ一つ確認していくことで原因を解消することができます。焦らずに一つ一つ原因を確かめることが、結局一番早い近道かもしれないですね。CC)はAdobe社が提供するクリエイター向けのサービスです。Effects」など全20以上のアプリが提供されており、幅広いプランが用意されています。CCの全20以上のアプリが使用できるプランです。コンプリートプラン(12ヵ月)」がセットになって39,980円(税込)で利用できます。Cloudのライセンスを購入でき、以降のライセンス更新も可能。動画教材で基礎スキルを習得できるので、入門する方にも便利な講座です。詳しくは下記のリンクからチェックしてみてくださいね。Webエンジニア福岡のWeb制作会社でエンジニアをしています。記事に関するご質問やご相談等ございましたら気軽にお問い合わせください。サービス・ツールSPEEC登録不要、無料で使えるビジネス書類作成サービスです。見積書~領収書までのPDFを一括で作成することができます。犬のごはん楽天市場で販売中の犬のごはんを好みの条件で簡単に絞り込むことができるドッグフード検索サイトです。HASHWordPressのログイン用にハッシュ化したパスワードを生成するツールです。DBからパスワードを変更する場合にご利用ください。Programご訪問いただきありがとうございます!本サイトを運営しているryoheiと申します。福岡のWeb制作会社でエンジニアをしています。本サイトは私が業務中に得た知識をアウトプットする場として2015年から運営しています。into-the-program.com。