データの取得と出力を学ぶ!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形式のデータを変数や配列に変換する書き方の両方を説明しています。

 

なお本記事は、TechAcademyのPHPオンライン講座の内容をもとにしています。

 

そもそもJSONとは

JSONとは一体どういったものだったでしょうか。JSONとは「JavaScript Object Notation 」の略で、JavaScriptのオブジェクトの記法として開発されました。

その後、様々なプログラミング言語でデータの受け渡しをするための記法として使われるようになりました。人間が本を読む時は文章の形であれば読むことができますし、家計簿や予算などのデータを見るときであれば表やグラフの形式であれば読みやすいでしょう。逆に、グラフデータを文章にすると理解りづらくなることもあるはずです。

プログラミング言語でも同様に、データを理解しやすい形式というものがあります。その中の一つがJSONです。

簡単な例として、

{"a":"Taro","b":"John","c":"Nikita","d":"Jiro","e":"Saburo"}

がJSON形式です。上の”a”の項目には”Taro”という文字が入っています。

 

大石ゆかり

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

田島悠介

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

大石ゆかり

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

田島悠介

そうだね。JSON形式でデータが公開されているところが多いんだよ。PHPで使えるように戻したり、JavaScriptの連想配列に戻したり出来るんだよ。

 

json_encode関数の書き方

json_encode関数とは、文字列や配列などの変数をJSON形式に変換してくれる関数です。書き方は、

$json = json_encode($value);

のように書きます。$valueの部分に文字列や配列を入れます。

 

[PR] PHPプログラミングで挫折しない学習方法を動画で公開中

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というデータを取り出せていることがわかります。

 

コラム

実は私も!?独学で損する人の特徴

「スクールは高いから独学で成功する」という気持ちの方は多いと思います。
もちろんその方が金額は低く抑えられるでしょう。
ただ 独学には向き不向きがあり、実はスクールが向いている人も大勢います。

そんな方のために参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困って挫折しそうなときに、質問や相談できる相手がいる環境で学んでいきたいなと思った
  • ・わかった気になっているだけだったので、自分を追い込む環境に置いた方がいいと感じた
  • ・スクールのカリキュラムで市場に求められるスキルを学ぶべきと思った

少しでも当てはまる部分があれば、 スクールが向いているかもしれません。
お試しのつもりで、まずは一度 無料相談 に参加してみませんか?

現役エンジニア・デザイナーに何でも気軽に相談できる30分すべて無料で できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

まとめ

JSONはよくAPIなどを使ってデータをやり取りする際に使われます。

プログラミングでデータをやり取りするためにはほぼ必須の知識となっていますので、json_encode関数やjson_decode関数を活用できるようになりましょう。

 

大石ゆかり

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

田島悠介

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

大石ゆかり

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

田島悠介

そうそう。使いどころは簡単じゃないけど、JavaScriptの連想配列や変数、配列もPHPで使うことが出来るんだよ。

 

また、PHPを勉強していて、

  • もっと効率的に勉強したい
  • 誰かに聞きながら学びたい
  • 自分でWebサービスを作りたい
1時間でできる無料体験!

と思ったことはないでしょうか。

 

そんな方のために、TechAcademyではオンラインブートキャンプPHP/Laravelコースを提供しています。

現役エンジニアがパーソナルメンターとして受講生に1人ずつつき、マンツーマンのメンタリングで学習をサポートし、オリジナルWebサービスを開発することが可能です。

独学に限界を感じている場合はご検討ください。

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、現役エンジニア講師とマンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう 厳しい試験を通過した講師 があなたの相談に真摯に向き合います。

「ただ気になることを相談したい」
「漠然としているがプロの話を聞いてみたい」

こんな気持ちでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する