トップへ(mam-mam.net/)

PHPでJSONを扱う方法|json_encodeとjson_decodeの使い方と注意点

PHPでJSON文字列のエンコード、デコード(json_encode、json_decode関数)

PHPでJSONデータを扱う方法を紹介します。
このページでは、json_encodejson_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

PHPサンプル集一覧へ