Zend_Json-Objects.xml 2.0 KB

1234567891011121314151617181920212223242526272829
  1. <!-- EN-Revision: 12759 -->
  2. <sect1 id="zend.json.objects">
  3. <title>Objets JSON</title>
  4. <para>Lorsque vous encodez des objets PHP en tant que JSON, toutes les propriétés publiques de cet objet sont
  5. encodées dans un objet JSON.</para>
  6. <para>JSON ne vous permet pas de référencer des objets, donc le soin devra être pris pour ne pas coder des objets
  7. avec des références récursives. Si vous avez des problèmes de récursivité, <classname>Zend_Json::encode()</classname> et
  8. <classname>Zend_Json_Encoder::encode()</classname> autorisent un deuxième paramètre facultatif afin de vérifier la récursivité
  9. ; si un objet est sérialisé deux fois, une exception sera levée.</para>
  10. <para>Bien que les objets Javascript correspondent de très près aux tableau associatifs de PHP, décoder des objets
  11. JSON pose une légère difficulté. Certains suggèrent qu'un identifiant de classe soit passé, et qu'une instance de
  12. cette classe soit créée et définie avec les paires clé/valeur des objets JSON ; d'autres pensent que cela pourrait
  13. poser un risque de sécurité potentiel.</para>
  14. <para>Par défaut, <classname>Zend_Json</classname> décodera des objets JSON comme en tableaux associatifs. Cependant, si vous
  15. désirez avoir un objet en retour, vous pouvez le spécifier : <programlisting role="php"><![CDATA[
  16. // Décode des objets JSON en tant qu'objets PHP
  17. $phpNatif = Zend_Json::decode($valeurEncodee, Zend_Json::TYPE_OBJECT);
  18. ]]></programlisting> Tous les objets sont ainsi
  19. décodés et retournés comme des objets de type <code>StdClass</code>, avec leurs propriétés correspondantes aux
  20. paires clé/valeur de la notation JSON.</para>
  21. <para>La recommandation de Zend Framework est que le développeur doit décider comment décoder les objets JSON. Si un
  22. objet d'un type spécifié doit être créé, il peut être créé dans le code du développeur et définit avec les valeurs
  23. décodées en utilisant <classname>Zend_Json</classname>.</para>
  24. </sect1>