JSON

פורמט להעברת מידע ברשת האינטרנט

JSON (ראשי תיבות של JavaScript Object Notation) הוא תקן של פורמט קובץ ופורמט העברת מידע שמשתמש בטקסט קריא-לאדם כדי לאחסן ולהעביר מבני מידע המורכבים מזוגות של מפתח-ערך. JSON הוא פורמט נתונים נפוץ עם מגוון שימושים בהעברת מידע, כולל בין השאר העברת מידע בין שרת ללקוח.

JavaScript Object Notation
סיומת קובץ ‎.json
סוג MIME application/json
אתר json.org

פורמט 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"
     ]
 }

JSONP עריכה

JSONP (ראשי תיבות של JavaScript Object Notation with Padding) הוא שיטה להעברת מסמכי JSON בין אתרים בעלי כתובות אינטרנט שונות. כיוון שמנגנוני אבטחה בדפדפנים מגבילים העברת מסמכים בין אתרים (same-origin policy), מסמכי JSON כפי שהם אינם ניתנים להעברה. כדי לאפשר לאתרים אחרים לגשת לאובייקט JSON, המסמך יישמר בפורמט .jsonp, כאשר המידע במסמך נעטף בשם של פונקציית JavaScript הקיימת בדף האינטרנט שממנו טוענים את מסמך ה-JSONP, ובכך מהווה פרמטר של הפונקציה. בעת הטעינה, הפונקציה תופעל, ותוכל לגשת אל אובייקט ה-JSON דרך הפרמטרים שלה. להלן דוגמה למבנה מסמך JSONP:

fooBar({
	firstName: "יעקב",
	lastName: "ישראלי",
	address: {
 streetAddress: "רחוב המשעול, 13",
 city: "ירושלים",
 state: "ישראל",
 postalCode: 10021
	},
	phoneNumbers: [
		"212 555-1234",
		"646 555-4567"
	]
});

בדוגמה שלמעלה, fooBar הוא שם הפונקציה שאליה מסמך ה-JSONP יקרא, והמידע המועבר זהה לאובייקט ה-JSON שהוצג בדוגמה הראשונה. דוגמה לפונקציה fooBar:

function fooBar(param) {
	alert("שם פרטי: " + param.firstName + ", " + "שם משפחה: " + param.lastName);
}

בדוגמה למעלה, בעת טעינת מסמך ה-JSONP, הפונקציה fooBar תציג הודעה עם הטקסט הבא: "שם פרטי: יעקב, שם משפחה: ישראלי". שם הפונקציה במסמך ה-JSONP יכול להיות סטטי - כלומר, שם פונקציה קבוע שיש לשמור למסמך הספציפי, אך גם אפשרי ליצור שם דינמי לפונקציה, למשל, כאשר לכתובת ה-URL של מסמך ה-JSONP מוסיפים פרמטרים נוספים, בהתאם להוראות האתר שבו נמצא המסמך הרצוי.

ראו גם עריכה

קישורים חיצוניים עריכה

  מדיה וקבצים בנושא JSON בוויקישיתוף

הערות שוליים עריכה

  1. ^ A Deep Look at JSON vs. XML, Part 1: The History of Each, Toptal Engineering Blog (באנגלית)
  2. ^ ECMA-404, Ecma International (באנגלית אמריקאית)
  ערך זה הוא קצרמר בנושא תוכנה. אתם מוזמנים לתרום לוויקיפדיה ולהרחיב אותו.