データの取得と出力を学ぶ!PHPでJSONを使う方法【初心者向け】
プログラミング初心者向けにPHPでJSONを扱う方法について解説しています。JSONデータの出力、JSONデータの取得、読み込みなど実際の開発現場でも役立つ知識になります。APIを使った作業などに便利でしょう。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
PHPでJSONを使う方法について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。
APIを使った開発作業などによく使われることがありますが、データを扱う上で便利な書き方なので、ぜひ覚えておきましょう。
配列などをJSON形式に変換する書き方、JSON形式のデータを変数や配列に変換する書き方の両方を説明しています。
目次
そもそもPHPについてよく分からないという方は、PHPとは何なのか解説した記事を読むとさらに理解が深まります。
そもそもJSONとは
JSONとは一体どういうものでしょうか。
JSONとは「JavaScript Object Notation 」の略で、JavaScriptのオブジェクトの記法として開発されました。
その後、様々なプログラミング言語でデータの受け渡しをするための記法として使われるようになりました。
人間が本を読む時は文章の形であれば読むことができますし、家計簿や予算などのデータを見るときであれば表やグラフの形式であれば読みやすいでしょう。
逆に、グラフデータを文章にするとわかりづらくなることもあるはずです。
プログラミング言語でも同様に、データを理解しやすい形式というものがあります。
その中の1つがJSONです。
簡単な例として、下記がJSON形式です。
{"a":"Taro","b":"John","c":"Nikita","d":"Jiro","e":"Saburo"}
上の”a”の項目には”Taro”という文字が入っています。

ジェイソンって何か怖いですね。

JSONのほうは、簡単に言うとJavaScriptの連想配列なんだ。

これは、どこかのサイトからデータを取得してくる感じですか?

そうだね。JSON形式でデータが公開されているところが多いんだよ。PHPで使えるように戻したり、JavaScriptの連想配列に戻したりできるんだよ。
JSONデータの取得方法
PHPは主にサーバサイドで使用されるプログラミング言語です。
PHPで構築したサーバから別のサーバに接続して何らかのデータを取得する際に、JSON形式のデータが使用されることがあります。
例えば、example.comに配置されているJSON形式のデータを取得する場合は、以下のようなイメージです。
<?php $url = "http://example.com/sample.json"; $json = file_get_contents($url); ?>
http://example.com/sample.jsonからJSON形式のデータを取得し、$jsonに設定しています。
※上記は例ですので、http://example.com/sample.jsonからJSON形式のデータは実際には取得できません。
[PR] PHPプログラミングで挫折しない学習方法を動画で公開中
JSONデータの作成方法
PHPではJSONデータを配列として扱えます。
あくまで配列であり、まだJSON形式ではないことに注意してください。
<?php $ary = array('a'=>"Taro", 'b'=>"John", 'c'=>"Nikita", 'd'=>"Jiro", 'e'=>"Saburo" ); ?>
実は私も!?独学で損する人の特徴
「スクールは高いから独学で成功する」という気持ちの方は多いと思います。
もちろんその方が金額は低く抑えられるでしょう。
ただ
独学には向き不向きがあり、実はスクールが向いている人も大勢います。
そんな方のために参考として、
テックアカデミー卒業生がスクールを選んだ理由
をご紹介します。
- ・困って挫折しそうなときに、質問や相談できる相手がいる環境で学んでいきたいなと思った
- ・わかった気になっているだけだったので、自分を追い込む環境に置いた方がいいと感じた
- ・スクールのカリキュラムで市場に求められるスキルを学ぶべきと思った

少しでも当てはまる部分があれば、
スクールが向いているかもしれません。
お試しのつもりで、まずは一度
無料相談
に参加してみませんか?
現役エンジニア・デザイナーに何でも気軽に相談できる30分
を
すべて無料で
できます。
無理な勧誘は一切ない
ので、お気軽にご参加ください。
json_encode関数の書き方
json_encode関数とは、文字列や配列などの変数をJSON形式に変換してくれる関数です。
書き方は、以下のように書きます。
$json = json_encode($value);
$valueの部分に文字列や配列を入れます。
json_decode関数の書き方
json_decode関数は、JSON形式の変数を配列やオブジェクト型に変換してくれる関数です。
書き方は、以下のように書きます。
$decoded_json = json_decode($json);
$jsonの部分にJSON形式の変数を入れます。
実際に書いてみよう
それでは実際に書いてみましょう。
まずjson_encode関数を使って、配列をJSON形式に変換してみます。
encode_json.php -------------------------------------------------- <?php // 配列を用意します。 $ary = array('a'=>"Taro", 'b'=>"John", 'c'=>"Nikita", 'd'=>"Jiro", 'e'=>"Saburo" ); // 配列をjson_encode関数でJSON形式に変換します。 $json = json_encode($ary); // 変換したJSON形式である$jsonを表示します。 print($json); ?> --------------------------------------------------
以下、実行結果です。
実行結果 -------------------------------------------------- {"a":"Taro","b":"John","c":"Nikita","d":"Jiro","e":"Saburo"} --------------------------------------------------
配列がJSON形式になっていることがわかります。
次に、json_decode関数を使って、JSON形式をオブジェクトに変換します。
decode_json.php -------------------------------------------------- <?php // 配列を用意します。 $ary = array('a'=>"Taro", 'b'=>"John", 'c'=>"Nikita", 'd'=>"Jiro", 'e'=>"Saburo" ); // 配列をjson_encode関数でJSON形式に変換します。 $json = json_encode($ary); // JSON形式に変換されている$jsonをオブジェクト型に変換します。 $decoded_json = json_decode($json); // オブジェクト型に変換した$decoded_jsonの中身をvar_dump関数で表示します。 print(var_dump($decoded_json)); // $decoded_jsonからデータを取り出して表示します。 print($decoded_json->{"c"}); ?> --------------------------------------------------
以下、実行結果です。
-------------------------------------------------- object(stdClass)#1 (5) { ["a"]=> string(4) "Taro" ["b"]=> string(4) "John" ["c"]=> string(6) "Nikita" ["d"]=> string(4) "Jiro" ["e"]=> string(6) "Saburo" } Nikita --------------------------------------------------
JSON形式がオブジェクト型に変換され、またNikitaというデータを取り出せていることがわかります。
まとめ
JSONは、よくAPIなどを使ってデータをやり取りする際に使われます。
プログラミングでデータをやり取りするためにはほぼ必須の知識ですので、json_encode関数やjson_decode関数を活用できるようになりましょう。

上の例では、PHPの連想配列の形が、jsonエンコードで、JavaScriptの連想配列になって、デコードで元に戻ってますね。

簡単にまとめると、JavaScriptの変数や配列や連想配列などのデータは、PHP側で使うことができたりするんだ。

違うプログラミング言語なのに、変数が使えるんですね。

そうそう。使いどころは簡単じゃないけど、JavaScriptの連想配列や変数、配列もPHPで使うことができるんだよ。
PHPを学習中の方へ
これで解説は終了です、お疲れさまでした。
- つまずかず「効率的に」学びたい
- 副業や転職後の「現場で使える」知識やスキルを身につけたい
プログラミングを学習していて、このように思ったことはありませんか?
テックアカデミーのPHP/Laravelコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。
合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、PHP/Laravelを使ったWebアプリケーション開発を学べます。
まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。
時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!

プログラミングを独学していて、このように感じた経験はないでしょうか?
- ・調べてもほしい情報が見つからない
- ・独学のスキルが実際の業務で通用するのか不安
- ・目標への学習プランがわからず、迷子になりそう
テックアカデミーでは、このような
学習に不安を抱えている方へ、現役エンジニア講師とマンツーマンで相談できる機会を無料で提供
しています。
30分間、オンラインでどんなことでも質問し放題です。
「受けてよかった」と感じていただけるよう
厳しい試験を通過した講師
があなたの相談に真摯に向き合います。
「ただ気になることを相談したい」
「漠然としているがプロの話を聞いてみたい」
こんな気持ちでも大丈夫です。
無理な勧誘は一切ありません
ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)