9.3. JSON オブジェクト
前のページ | 第9章 Zend_Json | 次のページ

## 9.3. JSON オブジェクト

PHP オブジェクトを JSON にエンコードすると、 オブジェクトの public プロパティがすべて JSON オブジェクトにエンコードされます。

JSON オブジェクトのデコードは、ちょっと大変です。Javascript のオブジェクトを PHP に対応させるなら、連想配列にするのが一番近いでしょう。 しかし、中には「クラスの ID を渡してそのインスタンスを作成し、 JSON オブジェクトの キー/値 をそのインスタンスに代入すべきだという人もいます。 また、そんなことをするとセキュリティ上問題があるという人もいるでしょう。

デフォルトでは、`Zend_Json` は JSON オブジェクトを連想配列にデコードします。しかし、 もしオブジェクトとして受け取りたいのなら、そのように指定することもできます。

    <?php
    // オブジェクトをオブジェクトにデコードします
    $phpNative = Zend_Json::decode($encodedValue, Zend_Json::TYPE_OBJECT);
    ?>

このようにしてデコードされたオブジェクトは `StdClass` オブジェクトとなり、JSON の キー/値 のペアに対応するプロパティを保持します。

Zend Framework の推奨する方法は、各開発者が JSON オブジェクトのデコード方法を決めるべきだというものです。 もし特定の型のオブジェクトを返してほしいのなら、 お望みの型のオブジェクトを開発者自身が作成したうえで、 `Zend_Json` がデコードした値をそこに代入していけばいいのです。

前のページ | 上に戻る | 次のページ
9.2. 基本的な使用法 | ホーム | 第10章 Zend_Log