【PHP】json_decodeでJSONをデコードして連想配列に変換する方法

アイキャッチ画像

json_decodeでJSONをデコードすることができます。

使い方

json_denodeメソッドの引数でJSONを指定するだけです。

json_decode($hoge);

規定ではクラスオブジェクトとして出力される

出力される際以下のようにクラスオブジェクトとして変換されます。

stdClass Object
(
[usage] => stdClass Object
(
[text_units] => 1
[text_characters] => 7962
[features] => 5
)
・・・(ずっと続きます…)

クラスを使って吐き出すので値を取り扱う際アロー演算子を使います。

なので特定のオブジェクトを出力したい際は以下のようにすればおkです。

$jsonが↓のようなときにusageオブジェクト内のtext_unitsを取り出したいとき、、、
(
[usage] => stdClass Object
(
[text_units] => 1
[text_characters] => 7962
[features] => 5
)
)

print_r($json->usage->text_units);
// 返り値:1

C言語同様にPHPのにもアロー演算子なるものが存在します。アロー演算子はクラスとかのオブジェクト指向で使う概念ですよね。まぁそこら辺ggrks。

連想配列としてデコードするには?

アロー演算子で取り出せるのでべつにあまり問題はないですが連想配列としてデコードすることもできます。

その際はjson_decodeメソッドでの第二引数でtrueを指定する必要があります。

$json = json_decode($json, true);

簡単なんで連想配列にしちゃったほうが良いかもしれません(笑)

使用例↓

echo $json['usage']['text_units'];
// 返り値:1