【PHP】JSONエンコードされた文字列をデコードする
JSONエンコードされたデータ(文字列)をjson_decode関数を使ってデコードする方法を紹介します。
json_decode関数
方法はいたって簡単で、json_decode関数を使うだけです。
これは読んで字のごとくJSONエンコードされたデータをデコードしてくれる関数です。
json_decode(ここにJSONエンコードされたデータ);
引数にJSONエンコードされた文字列を渡すと、それをPHPの変数(配列やオブジェクト)に変換してくれます。
「true」「false」「null」はそれぞれ「true」「false」「null」を返し、デコードに失敗した場合などは「null」を返します。
留意点
引数に渡すJSONエンコード文字列はUTF-8じゃなければ動作しません。
第2引数に「true」を設定すると、返されるオブジェクトは連想配列形式になります。
第3引数以降もありますので、json_decode関数の詳細はこちらを参照してください。
JSONエンコードされたデータとは?
JSONエンコードされたデータは以下のようなものです。
{"a":1,"b":2,"c":3,"d":4,"e":5}
や
{
"data":{
"id":"HAf3N0Z",
"datetime":1398916131,
"type":"imae\/jpeg",
"width":1440,
"height":810,
"size":115266
},
"success":true,
"status":200
}
形式のデータです。
JSONデコードされたデータ
以下のコードで上の2つをjson_decode関数を使ってデコードするとこのようになります。
<?php //JSONエンコードされたデータ $json = 'ここは上のJSONエンコードデータ(省略)'; //JSONデコードして出力 var_dump(json_decode($json)); //JSONデコードして出力(第2引数を指定) var_dump(json_decode($json, true)); ?>
1つ目
object(stdClass)#1 (5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}
array(5) {
["a"] => int(1)
["b"] => int(2)
["c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}
2つ目
stdClass Object
(
[data] => stdClass Object
(
[id] => HAf3N0Z
[datetime] => 1398916131
[type] => image/jpeg
[width] => 1440
[height] => 810
[size] => 115266
)
[success] => 1
[status] => 200
)
Array
(
[data] => Array
(
[id] => HAf3N0Z
[datetime] => 1398916131
[type] => image/jpeg
[width] => 1440
[height] => 810
[size] => 115266
)
[success] => 1
[status] => 200
)
あわせて読んでほしい!
コメント
まだコメントはありません。