| 12345678910111213141516171819202122232425262728293031323334 |
- <sect1 id="zend.json.objects">
- <title>אובייקטי JSON</title>
- <para>
- כשמקודדים אובייקטים של PHP ב JSON, כל הערכים המוגדרים ל public לאותו אובייקט יקודדו באובייקט ה JSON.
- </para>
- <para>
- JSON לא מאפשר שיוך אובייקטים, לכן לא מומלץ לקודד אובייקטים אשר משוייכים או מיוחסים לאובייקטים אחרים.
- אם ישנה בעיה עם רקורסיה באובייקטים, <code>Zend_Json::encode()</code> ו <code>Zend_Json_Encoder::encode()</code> מאפשרים הזנה של פרמטר שני אופציונלי לבדיקת רקורסיה;
- אם התבצע קידוד לאובייקט פעמיים, חריג יזרק אשר יודיע על כך.
- </para>
- <para>
- פענוח אובייקטים אשר קודדו ב JSON מציב קושי נוסף, מאחר ואובייקטים ב JS דומים למערכים אסוציאטיבים ב PHP.
- יש הממליצים שמזהה יחודי לכל מחלקה צריך להכנס לאובייקט כדי ש JSON יוכל לפענח את זה טוב יותר.
- אחרים מרגישים שזה יכול להוות כסכנה לכל המערכת.
- </para>
- <para>
- כברירת מחדל, <code>Zend_Json</code> יפענח אובייקטים של JSON בתור מערכים אסוציאטיבים. למרות, שניתן להעביר פרמטר שני אופציונלי אשר יחזיר אובייקט במקום מערך, לדוגמא:
- </para>
- <programlisting role="php"><![CDATA[
- // Decode JSON objects as PHP objects
- $phpNative = Zend_Json::decode($encodedValue, Zend_Json::TYPE_OBJECT);
- ]]>
- </programlisting>
- <para>
- אובייקטים אשר יפוענחו יוחזרו כאובייקטים של <code>StdClass</code> עם ערכים המשוייכים ל
- key/value באובייקט של JSON.
- </para>
- <para>
- ההמלצה של Zend Framework היא שכל מתכנת יחליט בעצמו כיצד לפענח אובייקטים של JSON.
- </para>
- </sect1>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|