1 <sect1 id="zend.json.objects">
2 <title>Объекты JSON</title>
4 Когда объекты PHP закодировываются в JSON, все публичные свойства этого
5 объекта будут закодированы в объект JSON.
7 When encoding PHP objects as JSON, all public properties of that object
8 will be encoded in a JSON object.
12 JSON не поддерживает ссылки на объекты, поэтому следите за тем, чтобы
13 не закодировывать объекты с рекурсивными ссылками. Если вы имеете дело
14 с рекурсией, то в вызове методов <code>Zend_Json::encode()</code> и
15 <code>Zend_Json_Encoder::encode()</code> можно установить второй
16 необязательный параметр для проверки на рекурсию; если один и тот же
17 объект подвергается сериализации дважды, то будет сгенерировано
20 JSON does not allow object references, so care should be taken not to
21 encode objects with recursive references. If you have issues with
22 recursion, <code>Zend_Json::encode()</code> and
23 <code>Zend_Json_Encoder::encode()</code> allow an optional second
24 parameter to check for recursion; if an object is serialized twice, an
25 exception will be thrown.
29 Декодирование объектов JSON представляет собой дополнительную сложность,
30 так как объекты Javascript скорее соответствуют ассоциативным массивам в
31 PHP. Одни советуют передавать идентификатор класса, экземпляр этого
32 класса должен быть создан и заполнен парами ключ/значение объекта JSON;
33 другие считают, что это может представлять собой серьезную угрозу
36 Decoding JSON objects poses an additional difficulty, however, since
37 Javascript objects correspond most closesly to PHP's associative array.
38 Some suggest that a class identifier should be passed, and an object
39 instance of that class should be created and populated with the
40 key/value pairs of the JSON object; others feel this could pose a
41 substantial security risk.
45 По умолчанию <code>Zend_Json</code> будет декодировать объекты JSON как
46 ассоциативные массивы. Но если вы хотите получить объект, то можете
49 By default, <code>Zend_Json</code> will decode JSON objects as
50 associative arrays. However, if you desire an object returned, you can
54 <programlisting language="php"><![CDATA[<?php
55 // Декодировать объект как объект
56 $phpNative = Zend_Json::decode($encodedValue, Zend_Json::TYPE_OBJECT);
57 ?>]]></programlisting>
59 Любые объекты, декодированные таким образом, возвращаются как
60 объекты <code>StdClass</code> со свойствами, соответствующими парам
61 ключ/значение в нотации JSON.
63 Any objects thus decoded are returned as <code>StdClass</code> objects
64 with properties corresponding to the key/value pairs in the JSON
69 Рекомендацией Zend Framework является то, что разрабочик
70 должен сам принимать решение, как декодировать объект JSON. Если
71 должен быть создан объект определенного типа, он может быть создан в
72 коде разработчика и заполнен значениями, декодированными с помощью
73 <code>Zend_Json</code>.
75 The recommendation of Zend Framework is that the individual
76 developer should decide how to decode JSON objects. If an object of a
77 specified type should be created, it can be created in the developer
78 code and populated with the values decoded using <code>Zend_Json</code>.