PHP | JSONのエンコードとデコード、お勧めオプションなど

PHP,PHP 配列

JSONのエンコードとデコード、お勧めオプションなど

PHPのjson_encode()とjson_decode()を使ってJSONを配列にエンコード、配列をJSONにデコードする方法の紹介です。

json_encode()で配列をJSONにエンコード

json_encode()で配列をJSONコードに変換することが可能です。

json_encode(対象の配列,オプション);

お勧めオプション

オプション引数は省略可能ですが、デフォルトではマルチバイト文字は変換されますし改行・タブはなしなので、マルチバイト文字の変換の有無や改行コード・タブの有無など人がデータを確認する可能性のあるものはオプション引数にて設定しておいた方が良いと思います。

json_encode(対象の配列,JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);
JSON_PRETTY_PRINT書式の整形PHP 5.4.0~
JSON_UNESCAPED_SLASHES「/」をエスケープしないPHP 5.4.0~
JSON_UNESCAPED_UNICODEマルチバイト文字をそのままにするPHP 5.4.0~

サンプルコード

$array = [
	['name' => 'apple', 'value' => '300'],
	['name' => 'grape', 'value' => '400'],
	['name' => 'pine', 'value' => '500']
];

$json = json_encode($array, JSON_PRETTY_PRINT|JSON_UNESCAPED_UNICODE|JSON_UNESCAPED_SLASHES);

json_decode()でJSONを配列にデコード

json_decode()でJSONコードをPHPの配列に変換することが可能です。

json_decode(対象の配列,オプション);

必須オプション

json_decode()でJSONコードをPHPの配列に変換するには、オプション引数に「JSON_OBJECT_AS_ARRAY」または「true」を指定する必要があります。

json_decode(対象の配列, JSON_OBJECT_AS_ARRAY);
json_decode(対象の配列, true);

サンプルコード

JSONデータをPHPの配列に変換するサンプルコードです。
json_encode()のサンプルで配列から変換したJSONコードを利用しています。

$json = '[
    {
        "name": "apple",
        "value": "300"
    },
    {
        "name": "grape",
        "value": "400"
    },
    {
        "name": "pine",
        "value": "500"
    }
]';

$array = json_decode($json, true);

PHP,PHP 配列

Posted by Yousuke.U