PHPのjson_decodeで配列とオブジェクト

 久々にWeb APIを触る。JSONなやつ。APIのバージョンアップに対応するため。

 以前はPEARのモジュールを使っていたのだけど、新APIへの対応を調べるまでもなく、いまなら標準の関数とかでそのまま書けるんじゃね?(環境とスキル的な意味で) と思い作業開始。
 取得したデータをjson_decodeで。引数によりオブジェクトか連想配列に変換できるとか。既存のプログラムをなるべく変更なしに使えそうなのは連想配列っぽい。ということでとりあえず書く。動いた。
 しかし、オブジェクトのほうが速かったりしないか? コスト的にどうなの?
 とか。と思い、検索。そのものずばりなのがあった。
 PHP::オブジェクトと連想配列のパフォーマンス比較 ← b_bLOG

結論::いつも通り連想配列でGO

 だそうで。ありがたい。そのままいくことに。
 そういえば、このプログラムはPHP4の時代に作ったものをそのままPHP5で動かしてたんだったか。だからPEARのあれを使ってたんだっけかな。というメモ。
 こんな話もあるんだそうだ。
 PHPのjson_decode()が連想配列でなくオブジェクトで返ってくる件 | 吟遊詩人の戯言
 PHP5.2.0でserialize()とjson_encode()はどちらが速いのかはてなブックマーク - PHP5.2.0でserialize()とjson_encode()はどちらが速いのか
 PHPでオブジェクトを配列に変換 – Qiitaはてなブックマーク - PHPでオブジェクトを配列に変換 - Qiita
 [PHP]json_decode した stdClass Object を扱う | PHP Archiveはてなブックマーク - [PHP]json_decode した stdClass Object を扱う | PHP Archive
 [PHP] PHPでJSONオブジェクトを扱うには – YoheiM .NETはてなブックマーク - [PHP] PHPでJSONオブジェクトを扱うには - YoheiM .NET 
 あと、これ。
 floatingdays: PHPの json_encode()で配列になるかハッシュになるかはてなブックマーク - floatingdays: PHPの json_encode()で配列になるかハッシュになるか

結論
json_encode()により配列(Array)になるのは、PHPの(連想)配列のKEYがゼロから始まる連番の場合のみ。

コメント

タイトルとURLをコピーしました