PHPでJSONのObject(stdClass)を扱う
詰まったのでメモ。
例えばこんな感じのJSONをPHPでデコードしたいとする。
object(stdClass)#1 (2) {
["check"]=>
int(1)
["code"]=>
object(stdClass)#2 (3) {
["title"]=>
string(3) "ABC"
["description"]=>
string(8) "testtest"
["items"]=>
array(1) {
[0]=>
object(stdClass)#3 (2) {
["url"]=>
string(31) "http://www.proto-star.com/"
["title"]=>
string(0) ""
}
}
}
}
この時、[“title”]の値を取り出したければ、
$obj = json_decode($json); echo $obj->code->title;
という感じに書けばよいが、 [“items”] の [“url”] を取り出そうとするとつまづく。
しばらく考えたり試したりしたが上手く行かなかったため、検索してみると以下のサイトが引っかかった。
http://stackoverflow.com/questions/263392/handling-data-in-a-php-json-object
上記のサイトを参考に以下のように記述したところうまくいった。
$obj = json_decode($json); $obj_items = $obj->code->items; echo $obj_items[0]->url;
その他、デコード時に配列として利用する方法もあるようだ。
【その他の参考】

