# אובייקטי JSON

כשמקודדים אובייקטים של PHP ב JSON, כל הערכים המוגדרים ל public לאותו אובייקט יקודדו באובייקט ה JSON.

JSON לא מאפשר שיוך אובייקטים, לכן לא מומלץ לקודד אובייקטים אשר משוייכים או מיוחסים לאובייקטים אחרים. אם ישנה בעיה עם רקורסיה באובייקטים, `Zend_Json::encode()` ו `Zend_Json_Encoder::encode()` מאפשרים הזנה של פרמטר שני אופציונלי לבדיקת רקורסיה; אם התבצע קידוד לאובייקט פעמיים, חריג יזרק אשר יודיע על כך.

פענוח אובייקטים אשר קודדו ב JSON מציב קושי נוסף, מאחר ואובייקטים ב JS דומים למערכים אסוציאטיבים ב PHP. יש הממליצים שמזהה יחודי לכל מחלקה צריך להכנס לאובייקט כדי ש JSON יוכל לפענח את זה טוב יותר. אחרים מרגישים שזה יכול להוות כסכנה לכל המערכת.

כברירת מחדל, `Zend_Json` יפענח אובייקטים של JSON בתור מערכים אסוציאטיבים. למרות, שניתן להעביר פרמטר שני אופציונלי אשר יחזיר אובייקט במקום מערך, לדוגמא:

    // Decode JSON objects as PHP objects
    $phpNative = Zend_Json::decode($encodedValue, Zend_Json::TYPE_OBJECT);

אובייקטים אשר יפוענחו יוחזרו כאובייקטים של `StdClass` עם ערכים המשוייכים ל key/value באובייקט של JSON.

ההמלצה של Zend Framework היא שכל מתכנת יחליט בעצמו כיצד לפענח אובייקטים של JSON.