JSON
JSON (ראשי תיבות של JavaScript Object Notation) הוא תקן של פורמט קובץ ופורמט העברת מידע שמשתמש בטקסט קריא-לאדם כדי לאחסן ולהעביר מבני מידע המורכבים מזוגות של מפתח-ערך. JSON הוא פורמט נתונים נפוץ עם מגוון שימושים בהעברת מידע, כולל בין השאר העברת מידע בין שרת ללקוח. פורמט JSON תואר לראשונה על ידי דאגלס קרוקפורד בשנות ה-2000 המוקדמות. הודעת ה-JSON הראשונה נשלחה באפריל 2001[1]. אף על פי שפורמט זה פותח בתחילה לשימוש ב-JavaScript ונעשה בו שימוש נרחב בשפה זו, JSON הוא מבנה נתונים לא תלוי שפה, ותמיכה בעיבוד ויצירה של נתונים בפורמט JSON מובנית במגוון שפות תכנות. היסטוריהאתר האינטרנט JSON.org הושק ב-2002. בדצמבר 2005 Yahoo! החלה להציע את שירותי הרשת שלה גם בפורמט JSON. שנה לאחר מכן הציעה Google עדכוני JSON עבור פרוטוקול GData. באוקטובר 2013, Ecma International פרסמו את המהדורה הראשונה של תקן ה-JSON: ECMA-404[2]. באותה השנה, RFC 7159 אזכר את ECMA-404 כהפניה. ב-2014, RFC 7159 הפך לנוסח התקן הרשמי לשימושי הרשת של JSON. דוגמהלהלן דוגמה לייצוג של אובייקט המתאר אדם בפורמט JSON. {
"firstName": "יעקב",
"lastName": "ישראלי",
"address": {
"streetAddress": "רחוב המשעול, 13",
"city": "ירושלים",
"state": "ישראל",
"postalCode": 10021
},
"phoneNumbers": [
"212 555-1234",
"646 555-4567"
]
}
תחבירסוגי נתוניםסוגי המידע השונים בJSON הם:
מותר לשים מרווחים (Whitespace) בתוך קובץ JSON בין הסימנים המוסכמים (למשל בין ערך אחד במערך לערך הבא) ומי שקורא אותם יכול להתעלם מהם כל עוד הם אינם חלק ממחרוזת. ארבעה תווים נחשבים למרווח בהקשר זה: רווח, טאב, שורה חדשה וחזרה לתחילת השורה (CRLF). גרסאות מוקדמות של JSON (כמו אלה שהוגדרו ב-RFC 4627) הגדירו ש-JSON תקין יכיל רק אובייקטים ומערכים, שיכולים להכיל את שאר סוגי המידע בתוכם. דרישה זו הוסרה בRFC 7158, שבו טקסט JSON הוגדר מחדש ככל טקסט שמכיל אחד מסוגי המידע שהוגדרו קודם. המספרים ב-JSON אדישים לדרך שבה הם מיוצגים בשפות התכנות השונות. למרות שתכונה זו מאפשרת למספרים בעלי דיוק משתנה [אנ] להיות מיוצגים בJSON, היא יכולה להוביל לבעיות בזמן המרת המידע. למשל, אין הבדל בין מספרים שלמים למספרים בעלי נקודה עשרונית, ולכן מימושים שונים יכולים לייצג את היכולת ליצור הערות בתוך המידע הושמטה בכוונה מ-JSON. ב-2012 דאגלאס קרוקפורד תיאר את ההחלטה כך: "החלטתי למחוק את ההערות מ-JSON מכיוון שראיתי שאנשים משתמשים בהם על מנת לשים הערות למנתח, מנהג שהיה יכול למנוע את יכולת המרת המידע". JSON לעומת Javascript, אינו מאפשר פסיקים נגררים ("trailing commas"), פסיק שנכתב לאחר הערך האחרון במבנה המידע.[4] JSONPJSONP (ראשי תיבות של JavaScript Object Notation with Padding) הוא שיטה להעברת מסמכי JSON בין אתרים בעלי כתובות אינטרנט שונות. כיוון שמנגנוני אבטחה בדפדפנים מגבילים העברת מסמכים בין אתרים (same-origin policy), מסמכי JSON כפי שהם אינם ניתנים להעברה. כדי לאפשר לאתרים אחרים לגשת לאובייקט JSON, המסמך יישמר בפורמט fooBar({
firstName: "יעקב",
lastName: "ישראלי",
address: {
streetAddress: "רחוב המשעול, 13",
city: "ירושלים",
state: "ישראל",
postalCode: 10021
},
phoneNumbers: [
"212 555-1234",
"646 555-4567"
]
});
בדוגמה שלמעלה, function fooBar(param) {
alert("שם פרטי: " + param.firstName + ", " + "שם משפחה: " + param.lastName);
}
בדוגמה למעלה, בעת טעינת מסמך ה-JSONP, הפונקציה יתרונות וחסרונותיתרונות
חסרונות
JSON לעומת XMLJSON הפך לחלופה פופולרית ל-XML בזכות מספר יתרונות:
עם זאת, XML עדיין בשימוש כאשר נדרשות תכונות מתקדמות כגון סכמות נתונים או מטה-נתונים. JSONPJSONP (ראשי תיבות של JavaScript Object Notation with Padding) מאפשר העברת JSON בין דומיינים שונים באמצעות עטיפת הנתונים בפונקציות JavaScript. השיטה משמשת לעקיפת מגבלות אבטחה כגון Same-origin policy. דוגמת JSONPמסמך JSONP: fooBar({
"name": "אילנה",
"age": 27
});
שימושיםJSON הוא אחד הפורמטים המרכזיים להעברת נתונים. בין יישומיו:
הרחבות לפורמט JSON
ראו גםקישורים חיצוניים
הערות שוליים
|