カテゴリ: PHP 更新日: 2025/10/14

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の略で、データをテキストで表す形式のことです。
人間にも読みやすく、プログラム同士のデータのやりとりにも便利なので、API通信JavaScriptPHPなどで広く使われています。

見た目は次のような形です。


{"name":"たろう","age":20,"gender":"male"}

キーと値をセットにした形で書かれていて、配列やオブジェクトのような構造を持つことができます。

2. PHPの配列をJSONに変換する(json_encode)

2. PHPの配列をJSONに変換する(json_encode)
2. PHPの配列をJSONに変換する(json_encode)

PHPで配列をJSON形式に変換するには、json_encodeという関数を使います。
たとえば以下のように配列を用意して、それをJSONに変換することができます。


$data = [
    "name" => "たろう",
    "age" => 20,
    "gender" => "male"
];

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

このコードを実行すると、以下のような出力になります。


{"name":"たろう","age":20,"gender":"male"}

json_encodeは、配列を文字列に変換する関数で、ウェブ上でAPIやJavaScriptにデータを渡すときによく使われます。

3. JSON文字列を配列に戻す(json_decode)

3. JSON文字列を配列に戻す(json_decode)
3. JSON文字列を配列に戻す(json_decode)

逆に、JSON形式の文字列をPHPの配列に戻すには、json_decodeを使います。
この関数は、文字列を解析して配列に変換してくれます。


$json = '{"name":"たろう","age":20,"gender":"male"}';

$data = json_decode($json, true);
print_r($data);

trueをつけることで、連想配列として取得できます。

実行結果は次の通りです。


Array
(
    [name] => たろう
    [age] => 20
    [gender] => male
)

このように、JSON形式からPHPの配列に戻すことができます。

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でセッションを使ってフォーム入力を保持する方法を解説!初心者向けステップバイステップ
Pythonで文字列をリストに変換する方法!split()とjoin()の使い方
Pythonの変数とは?定義方法とデータ型を初心者向けに解説
PHPでメールフォームを作る方法を徹底解説!初心者向けにmail関数とPHPMailerの使い方も紹介
人気記事
No.1
PHP&Python記事人気No1
Pythonでテキストファイルを1行ずつ読み込む方法(readline() / readlines())
No.2
PHP&Python記事人気No2
Pythonのリストを辞書に変換する方法(dict() / zip())
No.3
PHP&Python記事人気No3
Pythonで文字列が数値か判定する方法!isdigit()・isnumeric()の違い
No.4
PHP&Python記事人気No4
初心者向けにPHP でファイルを開く・読み込む・書き込む方法(fopen, fwrite, fread)を解説する記事
-