PHPでJSON文字列のエンコード、デコード(json_encode、json_decode関数)
PHPでJSONデータを扱う方法を紹介します。
このページでは、json_encodeとjson_decodeを使って、配列やオブジェクトをJSONに変換・解析する基本的な方法を、実例付きで解説しています。
構文や使い方を確認したい方に向けた、シンプルで実用的な内容です。
連想配列やオブジェクトをJSON文字列に変換するには
json_encode関数を使います。
JSON文字列を連想配列やオブジェクトに変換するには
json_decode関数を使います。
サンプルソースコードを以下に示します。
連想配列をJSON文字列へ変換(エンコード)
以下ソースコードを実行すると
<?php $a=[]; $a["a"]="1"; $a["b"][0]="2"; $a["b"][1]="2"; echo json_encode($a); ?>
以下が出力されます
{"a":"1","b":["2","2"]}
JSON文字列を連想配列へ変換(デコード)
json文字列を連想配列へデコードするには第2引数にtrueを指定して使用します。
json_decode(json文字列, true)
以下のソースコードを実行すると
<?php
$arr=json_decode('{ "a":"こんにちは" , "b":[41, "文字列"] }' , true);
var_dump($arr);
echo PHP_EOL;
echo $arr["b"][0]; // ["b"][0]の値を出力
?>
以下のように出力されます
array(2) {
["a"]=>
string(15) "こんにちは"
["b"]=>
array(2) {
[0]=>
int(41)
[1]=>
string(9) "文字列"
}
}
41
JSON文字列をオブジェクトへ変換(デコード)
json文字列をオブジェクトへデコードするには第2引数にfalseを指定して使用します。
json_decode(json文字列, false)
第2引数のfalseを省略するとデフォルトでオブジェクトとして変換されます。
以下のソースコードを実行すると
<?php
$obj=json_decode('{ "a":"こんにちは" , "b":[41, "文字列"] }', false);
var_dump($obj);
echo PHP_EOL;
echo $obj->b[0]; // b[0]の値を出力
?>
以下のように出力されます
object(stdClass)#2 (2) {
["a"]=>
string(15) "こんにちは"
["b"]=>
array(2) {
[0]=>
int(41)
[1]=>
string(9) "文字列"
}
}
41
