/documentation/manual/cs/module_specs/Zend_Json-Objects.xml

https://github.com/decaoz/zf1 · XML · 43 lines · 40 code · 0 blank · 3 comment · 0 complexity · 9492f5a443c6f6aeb3bcd23bdecf25d2 MD5 · raw file

  1. <sect1 id="zend.json.objects">
  2. <title>JSON Objekty</title>
  3. <para>
  4. Při převádění PHP objektů do JSON, budou veškere vlastnosti označené
  5. jako public převedeny do JSON objektu.
  6. </para>
  7. <para>
  8. JSON nedovoluje reference na objekt, takže je třeba dávat pozor a
  9. nepřevádět objekty s rekurzivními referencemi. Pokud máte problémy
  10. s rekurzemi, <code>Zend_Json::encode()</code> a
  11. <code>Zend_Json_Encoder::encode()</code> umožňují volitelný druhý
  12. parametr, zda se mají kontrolovat rekurze; pokud je objekt serializován
  13. dvakrát, bude vyhozena výjimka.
  14. </para>
  15. <para>
  16. Dekódování JSON objektů je komplikovanější, nicméně Javascriptové
  17. objekty jsou nejvíce podobné asociativním polím v PHP. Někteří lidé
  18. navrhují předávání identifikátoru třídy a naplnění instance objektu
  19. daty ve formátu klíč/hodnota z JSON objektu; jiní si myslí, že by to
  20. způsobilo značné bezpečnostní riziko.
  21. </para>
  22. <para>
  23. Defaultně, <code>Zend_Json</code> dekóduje JSON objekty jako asociativní
  24. pole. Nicméně, pokud vyžadujete vrácení objektu, můžete to určit takto:
  25. </para>
  26. <programlisting role="php"><![CDATA[<?php
  27. // Dekódovat JSON objekty jako PHP objekty
  28. $phpNative = Zend_Json::decode($encodedValue, Zend_Json::TYPE_OBJECT);]]>
  29. </programlisting>
  30. <para>
  31. Jakýkoliv objekt takto převedený je typu <code>StdClass</code>
  32. s vlastnostmi odpovídajícími dvojicím klíč/hodnota z JSON zápisu.
  33. </para>
  34. <para>
  35. Doporučení Zend Frameworku je, že každý vývojář by se měl rozhodnout
  36. jak dekódovat JSON objekty. Pokud je potřeba vytvořit objekt daného
  37. typu, tak může být vytvořen vlastním kódem a naplněn hodnotami
  38. získanými dekódováním pomocí <code>Zend_Json</code>.
  39. </para>
  40. </sect1>
  41. <!--
  42. vim:se ts=4 sw=4 et:
  43. -->