【PHP】JSONエンコードされた文字列をデコードする

公開日:
更新日:
カテゴリー: PHP

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
)

 

あわせて読んでほしい!

 

コメント

まだコメントはありません。

コメントフォーム
お名前
コメント