カテゴリ: PHP 更新日: 2025/12/12

PHPでJSONを扱う方法を完全ガイド!初心者向けにjson_encodeとjson_decodeをやさしく解説

PHP のJSONエンコード・デコード(json_encode, json_decode)
PHP のJSONエンコード・デコード(json_encode, json_decode)

先生と生徒の会話形式で理解しよう

生徒

「PHPでデータを保存したり送信したりするのに、JSONっていうのを使うって聞いたんですけど、よくわかりません…」

先生

「JSONは、PHPだけじゃなくて、ほとんどのプログラミング言語で使えるデータの形式なんですよ。とても便利なので覚えておくと役に立ちますよ。」

生徒

「JSONってそもそも何なんですか?どうやってPHPで使うんですか?」

先生

「いい質問ですね!今回は、PHPでJSONを使うためのjson_encodejson_decodeについて、やさしく説明しますね。」

-

1. JSON(ジェイソン)とは?

1. JSON(ジェイソン)とは?
1. JSON(ジェイソン)とは?

JSON(ジェイソン)とは、JavaScript Object Notationの略で、データを文字列として表現するためのルールです。

簡単に言うと、「連想配列」や「配列」などのデータを、他の人やプログラムとやり取りするために文字に変えた形だと思ってください。

例えば、次のようなデータがあるとします:


$data = [
    "name" => "さくら",
    "age" => 20
];

このデータをそのまま別のシステムに送ることは難しいですが、JSONに変換するとこうなります:


{"name":"さくら","age":20}

これなら、どんな言語のプログラムでも簡単に読み取れます。

2. json_encodeの使い方(PHPの配列をJSONに変換)

2. json_encodeの使い方(PHPの配列をJSONに変換)
2. json_encodeの使い方(PHPの配列をJSONに変換)

json_encodeは、PHPの配列やオブジェクトをJSON形式の文字列に変換する関数です。

使い方はとても簡単です。


$data = [
    "name" => "たろう",
    "age" => 25,
    "is_member" => true
];

$json = json_encode($data);
echo $json;

{"name":"たろう","age":25,"is_member":true}

このように、PHPの配列が文字列に変わります。

3. json_decodeの使い方(JSONをPHPの配列に変換)

3. json_decodeの使い方(JSONをPHPの配列に変換)
3. json_decodeの使い方(JSONをPHPの配列に変換)

json_decodeは、JSON文字列をPHPの配列やオブジェクトに変換する関数です。

たとえば、次のように使います:


$json = '{"name":"たろう","age":25,"is_member":true}';
$data = json_decode($json, true);
print_r($data);

Array
(
    [name] => たろう
    [age] => 25
    [is_member] => 1
)

trueを指定すると、「連想配列」として戻ってきます。指定しない場合は「オブジェクト」として戻ってきます。

4. JSONはなぜ便利なの?

4. JSONはなぜ便利なの?
4. JSONはなぜ便利なの?

JSONは次のような場面でよく使われます:

  • Web APIとの通信:サーバーとデータのやり取りをするとき
  • データの保存:設定ファイルとして使う場合
  • JavaScriptとの連携:フロントエンドとバックエンドのやり取り

特にPHPとJavaScriptの間でデータを受け渡しするとき、JSONがあるととてもスムーズです。

-

5. よくある使い方:フォームデータをJSONにして保存

5. よくある使い方:フォームデータをJSONにして保存
5. よくある使い方:フォームデータをJSONにして保存

たとえば、アンケートフォームで受け取った情報をまとめてJSONとして保存するケースです。


$form_data = [
    "q1" => "はい",
    "q2" => "いいえ",
    "q3" => "わからない"
];

$json = json_encode($form_data, JSON_UNESCAPED_UNICODE);
file_put_contents("answers.json", $json);

JSON_UNESCAPED_UNICODEを指定すると、日本語が「\u305f」などにならず、そのままの形で保存されます。

6. JSONデータの読み込みと表示

6. JSONデータの読み込みと表示
6. JSONデータの読み込みと表示

保存されたJSONファイルを読み込んで、PHPで表示することもできます。


$json = file_get_contents("answers.json");
$data = json_decode($json, true);

foreach ($data as $key => $value) {
    echo $key . "の答え:" . $value . "<br>";
}

JSONを使うと、保存や読み込みも簡単にできます。

7. JSONエンコード・デコード時の注意点

7. JSONエンコード・デコード時の注意点
7. JSONエンコード・デコード時の注意点

1. JSONにできるのは基本的な型だけ
json_encodeは、配列・連想配列・数字・文字列・true/false/null などしか扱えません。関数や特殊な型はエラーになります。

2. 文字コードはUTF-8で
文字化けを防ぐためにも、PHPの文字列はUTF-8にしておきましょう。

3. 第二引数を忘れずに
json_decodeで連想配列にしたいときはtrueを忘れずに!

まとめ

まとめ
まとめ

PHPでJSONを扱うスキルは、現代のWeb開発において欠かせない基本知識のひとつです。とくにjson_encodejson_decodeの2つの関数は、配列や連想配列などのPHPのデータ構造を、JavaScriptをはじめとする他の言語や外部サービスとやりとりするための「共通の言葉」として変換するために使われます。

json_encodeを使えば、PHPのデータを文字列に変換して保存したり、外部のAPIに送信したりすることができます。一方、json_decodeは、JSON文字列を再びPHPの配列やオブジェクトに戻すために使われます。この2つを使いこなせば、データの送受信や保存がぐっと簡単になります。

また、json_decodeの第2引数にtrueを渡すことで、戻り値を「連想配列」にできるのも非常に便利です。オブジェクト型よりも配列の方が扱いやすいという方も多いため、初心者のうちはこのオプションを忘れずに使うのがポイントです。

データを保存する場合は、file_put_contentsと組み合わせることで、ユーザーの入力結果や設定などをシンプルに保存できます。読み込みもfile_get_contentsで簡単に行えます。JSONファイルを使えば、データベースを使わなくてもちょっとした情報の保存ができるため、個人開発や軽量なシステムにもぴったりです。

■JSONを扱う基本のサンプルコードまとめ


<?php
// 配列をJSON形式に変換して保存
$data = [
    "name" => "ゆき",
    "score" => 88,
    "passed" => true
];
$json = json_encode($data, JSON_UNESCAPED_UNICODE);
file_put_contents("student.json", $json);

// 保存したJSONを読み込んで配列として展開
$json_read = file_get_contents("student.json");
$array = json_decode($json_read, true);

// 表示処理
foreach ($array as $key => $value) {
    echo $key . ":" . $value . "<br>";
}
?>

このように、PHPでJSONを扱うことは、Webアプリケーション開発において非常に実用的です。APIとの連携やフォームデータの保存、JavaScriptとのやりとりなど、実務でもさまざまな場面で使われています。

最初は文字列に見えてややこしく感じるかもしれませんが、「JSONはデータを文字にしただけ」と覚えると、すんなり理解できるでしょう。実際の開発ではJSON形式で通信するケースが増えているため、今回学んだjson_encodejson_decodeはしっかり使いこなせるようにしておきましょう。

先生と生徒の振り返り会話

生徒

「先生、PHPでJSONを使うって、最初は難しそうでしたけど、文字に変換して保存するだけって思ったらちょっとわかってきました!」

先生

「その調子です。JSONはシンプルなルールに基づいたデータ形式だから、PHPでも簡単に使えるんです。json_encodejson_decodeさえ押さえておけば、いろんなデータ処理ができるようになりますよ。」

生徒

「連想配列をjson_encodeで文字列にして保存して、json_decodeでまた配列に戻せるってすごく便利ですね。JSONって、他の言語でも使えるんですよね?」

先生

「そうです。JavaScriptはもちろん、PythonやJavaなど、ほとんどの言語でJSONは扱えます。だからWeb APIを使うときやJavaScriptとPHPを連携させるときに、JSONはとても役に立つんです。」

生徒

「JSONのファイル読み書きもできるから、ちょっとした設定やデータ保存にも使えるっていうのが良いですね。これからいろいろ試してみたいです!」

先生

「素晴らしい姿勢です。まずは小さなデータから扱って、徐々に応用していけば、きっとJSONの扱いが自然と身につきますよ。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

PHPでJSONという言葉が何度も出てきますが、そもそもJSONとはどのような意味を持つ形式なのか、初心者でも理解できるように知りたいです。データ形式や文字列形式としてどのように扱われるのかも気になります。

JSONはデータを文字列に変換してさまざまなシステムやプログラミング言語の間でやり取りするために使われる便利な形式で、PHPでは配列や連想配列を取り扱うときに役立ちます。
コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

カテゴリの一覧へ
新着記事
New1
PHP
PHPのCookieセキュリティを完全ガイド!初心者でもわかるSecureとHttpOnlyの使い方
New2
PHP
PHPのCSRF対策を完全理解!トークンを使った安全なフォーム送信の仕組みを初心者向けに徹底解説
New3
PHP
PHPのSQLインジェクション対策を完全解説!初心者でも安全にデータベースを扱う方法
New4
PHP
PHPでカウントダウンタイマーを作る方法!初心者向けにやさしく解説
-
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonでテキストファイルを1行ずつ読み込む方法(readline() / readlines())
No.2
Java&Spring記事人気No2
PHP
初心者向けPHPでMySQLからデータを取得する方法(SELECT文)完全ガイド
No.3
Java&Spring記事人気No3
Python
Pythonのリストの重複を削除する方法を解説!初心者向けにsetとdict.fromkeysの使い方をやさしく説明
No.4
Java&Spring記事人気No4
PHP
PHPのXSS対策を完全ガイド!初心者でもわかる安全なWebアプリの作り方
No.5
Java&Spring記事人気No5
Python
Pythonで経過時間を測る方法をやさしく解説!初心者向けtime.perf_counterとtime.sleepの使い方
No.6
Java&Spring記事人気No6
Python
PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方
No.7
Java&Spring記事人気No7
Python
Pythonでエラースタックトレースを表示・取得する方法を徹底解説!初心者向け例外処理入門
No.8
Java&Spring記事人気No8
PHP
PHPのOAuth認証をやさしく解説!Google・Facebookログインを初心者向けに実装しよう
-
-