icon
icon

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

目次

1時間でできる無料体験!

そもそも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分か60分お好きな時間が選べて、かつ3回まで すべて無料で ご利用できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

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

json_encode関数の書き方

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

書き方は、以下のように書きます。

$json = json_encode($value);

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

 

json_decode関数の書き方

json_decode関数は、JSON形式の変数を配列やオブジェクト型に変換してくれる関数です。

書き方は、以下のように書きます。

$decoded_json = json_decode($json);

$jsonの部分にJSON形式の変数を入れます。

 

1時間でできる無料体験!

実際に書いてみよう

それでは実際に書いてみましょう。

まず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週間限定)

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