カテゴリ: PHP 更新日: 2026/05/10

PHPで配列をJSON形式に変換する方法!初心者でもわかるjson_encodeとjson_decodeの使い方

PHP の配列を JSON 形式に変換する方法(json_encode, json_decode)
PHP の配列を JSON 形式に変換する方法(json_encode, json_decode)

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

生徒

「PHPで配列をウェブで使うJSONっていう形式に変換できるって聞いたんですが、どうやるんですか?」

先生

「PHPではjson_encodeという関数を使えば、配列をJSON形式の文字列に変換できますよ。逆に、JSONから配列に戻すにはjson_decodeを使います。」

生徒

「そのJSONってなんですか?初めて聞きました…」

先生

「JSONは“ジェイソン”と読みます。データをテキストでやりとりするための形式で、今どきのアプリやウェブサービスでよく使われています。実際の使い方を見ていきましょう!」

1. JSON形式とは?初心者でもわかるデータの仕組み

1. JSON形式とは?初心者でもわかるデータの仕組み
1. JSON形式とは?初心者でもわかるデータの仕組み

JSON(ジェイソン)は、JavaScript Object Notationの略称で、プログラミング言語を問わず「データをやり取りするための共通ルール」として世界中で使われているテキスト形式です。

最大の特徴は、「人間がパッと見ても内容が理解しやすく、コンピュータにとっても処理が非常に速い」という点にあります。もともとはJavaScriptから生まれた形式ですが、現在ではPHP、Python、Rubyなど、ほぼすべての言語で標準的なデータ交換フォーマットとして採用されています。

身近な例え:
JSONは、いわば「海外の人ともやり取りできる世界共通のレシート」のようなものです。品名(キー)と価格(値)がセットになっていて、誰が見ても何が書いてあるか分かりますよね。

JSONの書き方は非常にシンプルです。基本的には{ }(波括弧)の中に、「名前(キー)」と「値」をセットにして記述します。


{
    "name": "たろう",
    "age": 20,
    "is_student": true,
    "hobbies": ["読書", "旅行"]
}

このように、名前、年齢といった単一のデータだけでなく、数値や「はい/いいえ(真偽値)」、さらに複数のデータをまとめたリスト(配列)まで、複雑な情報もスッキリと1つのテキストにまとめることができます。

この「共通の形」があるおかげで、PHPで作られたサーバーから、ユーザーが使っているスマートフォンのアプリへスムーズに情報を届けることができるのです。

2. PHPの配列をJSON形式に変換する「json_encode」の使い方

2. PHPの配列をJSON形式に変換する「json_encode」の使い方
2. PHPの配列をJSON形式に変換する「json_encode」の使い方

PHPで用意したデータをJSON形式に変換したいときは、json_encode(ジェイソン・エンコード)という関数を使います。この関数を使うことで、PHP専用の「配列」というデータのまとまりを、ブラウザや他のプログラムでも読み取れる「テキスト(文字列)」に変換できます。

プログラミングが初めての方でも安心してください。まずは「名前」「年齢」「性別」といったシンプルなプロフィールデータ(連想配列)をJSONに変換する例を見てみましょう。


// 1. まずはPHPで配列(データのセット)を作成します
$user_data = [
    "name" => "たろう",
    "age" => 20,
    "gender" => "男性"
];

// 2. json_encodeを使って、配列をJSON形式の文字列に変換します
$json_output = json_encode($user_data);

// 3. 結果を表示してみましょう
echo $json_output;

このコードを実行すると、画面には以下のようなテキストが表示されます。


{"name":"\u305f\u308d\u3046","age":20,"gender":"\u7537\u6027"}

ここがポイント!
出力結果に \u305f... といった記号が並んでも驚かないでください。これは「ユニコード」というコンピュータ用の文字表現で、壊れているわけではありません。後の章で「日本語をそのまま表示させる方法」も解説するので、まずは「{ }で囲まれた形になれば成功」だと覚えておきましょう。

json_encodeは、PHP側で処理した計算結果やデータベースの内容を、JavaScriptなどのフロントエンド言語に受け渡す際の「橋渡し役」として、モダンなWeb開発では欠かせない非常に重要なステップです。

3. JSON文字列を配列やオブジェクトに戻す「json_decode」の使い方

3. JSON文字列を配列やオブジェクトに戻す「json_decode」の使い方
3. JSON文字列を配列やオブジェクトに戻す「json_decode」の使い方

JSON形式に変換したデータを、再びPHPで扱える形に戻したいときは、json_decode(ジェイソン・デコード)という関数を使います。これは、外部から届いた「JSONという名の小包」を解いて、中身を取り出す作業に似ています。

初心者の方が特につまずきやすいポイントが、この関数の「第2引数」です。まずは、実際に「名前」や「年齢」が含まれたJSONデータをPHPの配列として読み込むコードを見てみましょう。


// 1. JSON形式のデータ(テキスト)を用意します
$json_data = '{"name":"たろう","age":20,"gender":"男性"}';

// 2. json_decodeを使って、PHPで扱える「連想配列」に変換します
// 第2引数に「true」を入れるのが、配列として扱うための魔法の合言葉です
$array_data = json_decode($json_data, true);

// 3. 中身を確認してみましょう
print_r($array_data);

// 4. 配列になれば、個別にデータを取り出すのも簡単です!
echo "こんにちは、" . $array_data['name'] . "さん!";

このコードを実行すると、次のような結果が表示されます。


Array
(
    [name] => たろう
    [age] => 20
    [gender] => 男性
)
こんにちは、たろうさん!

初心者が忘れてはいけないポイント!
json_decode($json, true); のように、最後に true を付け忘れると、PHPでは「オブジェクト」という別の形式で扱われてしまいます。慣れないうちは、迷わず true をつけて「連想配列」として取得するのが、スムーズにプログラミングを進めるコツです。

APIなどで取得したデータは、そのままでは文字の羅列でしかありませんが、このjson_decodeを使うことで、特定の情報だけを抜き出したり、画面に表示したりといった自由な操作が可能になります。

4. JSON変換を使うシーン

4. JSON変換を使うシーン
4. JSON変換を使うシーン

PHPでJSONを使う場面はたくさんあります。たとえば、次のような場面です。

  • JavaScriptとのデータ連携(画面更新など)
  • 外部のAPIから情報を受け取るとき
  • Ajax通信でデータの送受信をするとき
  • データベースに複雑な構造のデータを保存したいとき

たとえば、天気予報やニュースを外部サービスから取り込む場合、そのデータはJSONで送られてきます。json_decodeで配列にすれば、PHPで簡単に扱えます。

5. JSONを扱う上での注意点

5. JSONを扱う上での注意点
5. JSONを扱う上での注意点

JSONを扱うときは、次の点に注意しましょう。

  • 日本語が文字化けする場合JSON_UNESCAPED_UNICODEというオプションを使うと解決します。
  • 循環参照がある配列はエラーになります。
  • 文字列が正しくないjson_decodeは失敗します。

日本語の出力をきれいにする例:


$data = ["message" => "こんにちは"];
echo json_encode($data, JSON_UNESCAPED_UNICODE);

これで「\u3053\u3093…」のような表示ではなく、「こんにちは」とそのまま表示されます。

6. ネストした配列もJSONに変換できる

6. ネストした配列もJSONに変換できる
6. ネストした配列もJSONに変換できる

多次元配列(配列の中に配列がある構造)も、そのままjson_encodeで変換できます。


$data = [
    "user" => [
        "name" => "たろう",
        "age" => 20
    ],
    "status" => "active"
];

echo json_encode($data, JSON_UNESCAPED_UNICODE);

出力結果:


{"user":{"name":"たろう","age":20},"status":"active"}

JSON形式は階層構造も表現できるので、情報をまとめて送るのにとても便利です。

まとめ

まとめ
まとめ

PHPで配列とJSON形式の変換を行う方法は、モダンなWeb開発では欠かせない基本スキルです。この記事では、json_encode関数を使ってPHPの配列をJSON文字列に変換する方法、そしてjson_decode関数を使ってJSON文字列をPHPの配列に戻す方法を丁寧に解説しました。特に、配列の中に配列が入っている「多次元配列」でも対応できる点や、日本語の文字化けを防ぐためにJSON_UNESCAPED_UNICODEオプションを使うテクニックなど、実務でも役立つポイントを押さえました。

JSONはJavaScriptとの連携だけでなく、外部APIとの通信、Ajaxの非同期処理、データベースへの構造的データ保存など、PHPを使ったWebアプリケーション開発のあらゆる場面で使われています。そのため、配列からJSONへの変換JSONから配列への変換という基本操作をしっかりと理解しておくことが大切です。

また、json_decodeを使うときは第2引数にtrueを渡すことで「連想配列」として扱えるようになります。この点は、オブジェクトとして返る仕様と区別して覚えておきましょう。

実務でもよく使うJSON変換のサンプルコード

ここでもう一度、基本となる書き方を確認しておきましょう。


$data = [
    "名前" => "さくら",
    "年齢" => 25,
    "職業" => "エンジニア"
];

// JSON形式に変換(日本語対応)
$json = json_encode($data, JSON_UNESCAPED_UNICODE);
echo $json;

// 出力: {"名前":"さくら","年齢":25,"職業":"エンジニア"}

// JSONから配列に戻す
$decoded = json_decode($json, true);
print_r($decoded);

このように、PHPで配列とJSONを自由に変換する方法を身につけておくと、データ連携・API通信・JavaScriptとのやりとりなど、さまざまな場面に対応できるようになります。PHP初心者にとっても、難しい文法ではなく、実用的で学びがいのある機能です。

最初はJSONの中かっこやコロンに戸惑うかもしれませんが、実際にPHPで試していくうちに自然と理解が深まっていきます。今後の学習やWebアプリ開発に役立ててください。

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

生徒

「PHPで配列をJSONに変換する方法がやっとわかってきました!json_encodeで文字列にして、json_decodeで配列に戻すってシンプルなんですね!」

先生

「その通りです。特にJSONはJavaScriptとデータをやり取りするのに最適な形式なので、PHPでもよく使われますよ。」

生徒

「文字化けの対策としてJSON_UNESCAPED_UNICODEを使うのも知れてよかったです。日本語を扱うときは必須なんですね。」

先生

「はい、そこは意外と見落としやすいポイントです。今後、API通信やJavaScriptとの連携をするときに必ず役立ちますよ。」

生徒

「これでWebアプリの開発にも挑戦できそうです。配列やJSONがこんなに便利だとは思いませんでした!」

先生

「ぜひどんどん使ってみてください。シンプルなコードでも、しっかり動かせると理解が深まりますよ。」

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

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

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

PHPでJSON形式って具体的にどんなときに使われるのですか?

PHPでJSON形式が使われるのは、JavaScriptとのデータ連携、API通信、Ajaxによる非同期処理、外部サービスからのデータ受信、そしてデータベースに構造化データを保存したいときなどです。

json_encodeはPHPの配列をJSONに変換するだけの関数ですか?

はい、json_encode関数はPHPの配列やオブジェクトをJSON形式の文字列に変換するための関数で、主にWebアプリケーションでJavaScriptやAPIと連携するために使います。
コメント
コメント投稿は、ログインしてください

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

カテゴリの一覧へ
新着記事
New1
PHP
PHPでセッションを使ってフォーム入力を保持する方法を解説!初心者向けステップバイステップ
New2
PHP
PHP の文字列の基本操作(連結・切り出し・長さ)の使い方
New3
PHP
PHPのメール送信でSPF・DKIM認証設定を完全解説!初心者でもわかるメール認証の基本
New4
Python
PythonでAPIのパフォーマンスを向上させる方法!キャッシュ活用を初心者向けに完全解説
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.2
Java&Spring記事人気No2
PHP
PHP のフォームデータの受け取り($_POST, $_GET)を完全解説!初心者向けガイド
No.3
Java&Spring記事人気No3
Python
Pythonで辞書のネスト構造(入れ子辞書)を扱う方法 初心者向け完全ガイド
No.4
Java&Spring記事人気No4
Python
Pythonのコンストラクタ(__init__)の使い方!初心者でもわかるオブジェクトの初期化
No.5
Java&Spring記事人気No5
PHP
PHPのHTMLメールの作成方法を完全ガイド!初心者でもわかるメール送信の基本
No.6
Java&Spring記事人気No6
Python
PythonでExcelファイル(.xlsx)を操作する方法を徹底解説!初心者でもできるopenpyxl・pandasの使い方
No.7
Java&Spring記事人気No7
Python
Pythonの例外を発生させる方法を完全解説!raise文の使い方を初心者向けにやさしく説明
No.8
Java&Spring記事人気No8
Python
Pythonで2次元リストを作成・操作する方法(リストのリスト)