התשובה הקצרה

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

JSON הוא אובייקט של JavaScript המשמש כפורמט להעברת נתונים בין שרתים. הוא פותח בתחילה כפורמט ייעודי להעביר נתונים מסקריפט של ג’אווה סקריפט לשרת אחר, אבל עם הזמן התרחב השימוש בו לשרתים נוספים בהתאם לכך שג’ייסון אינו תלוי שפה ומספק מבנה נתונים הנתמך במגוון שפות תכנות. עוד על ג’ייסון? המשיכו לקרוא.

 

מה זה JSON ולמה הוא משמש?

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

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

מבנה נתונים JSON מכיל מידע המאוחסן ומועבר בצורה של צמדים: ‘מפתח: ערך’ (value:key) מה שמקל מאוד על השימוש בו.

 

איך כותבים ג’ייסון? כללי תחביר

נכון שמבני נתונים של ג’ייסון דומים לאובייקטים של ג’אווה סקריפט, אבל כללי התחביר לכתיבת ג’ייסון שונים בהחלט. כתיבת ג’ייסון מבחינה תחבירית נוקשה יותר וכוללת דגשים רבים. הרציונל מאחורי הכתיבה המדויקת מתייחס לתפקיד של ג’ייסון כמרכז להעברה וקבלת מידע משרתים שונים ואליהם – בכל שפות התכנות, מה שדורש דיוק מקסימלי על מנת שכל API יוכל לקרוא את המידע ולקבל את הפקודות שנשלחו לו.

להלן הכללים התחביריים בכתיבת קוד ג’ייסון:

  1. שמות השדות יוקפו במירכאות כפולות.
  2. הערכים המבטאים גם מחרוזות – יוקפו במירכאות כפולות.
  3. ערכי המספרים לא יחויבו במירכאות כפולות.
  4. סוגים בוליאניים (true, false) ייכתבו באותיות קטנות וללא מירכאות כפולות.
  5. ערכים חסרים או ריקים יסומנו כ-null.
  6. ג’ייסון יוכל להכיל מערכים בתוך ערך של שדה.
  7. ג’ייסון יוכל להכיל אובייקטים, ובתוך אובייקטים ניתן להכניס אובייקטים נוספים במספר רמות היררכיה.

 

מכיוון שיש להקפיד מאוד על הכללים בכתיבת JSON כתנאי בסיסי להעברת מידע תקינה בין APIs, הכרחי לבצע בדיקות תקינות למבנה נתונים ג’ייסון.

 

מה זה JSONP ואיך הוא מסייע להעביר מידע בין אתרי אינטרנט בכתובת שונות?

JSONP הוא ראשי התיבות של המושג JavaScript Object Notation with Padding, ומהווה שיטה להעברה של מסמכים הכתובים בג’ייסון בין אתרי אינטרנט. הדפדפנים השונים מכילים מנגנוני אבטחה המגבילים העברת מידע באמצעות ג’ייסון כאובייקט של JavaScript, ולכן לא ניתן להעביר מסמך ג’ייסון בצורתו המקורית. לצורך כך, יש לשמור את המסמך בפורמט JSONP הגורם למידע במסמך לקבל תכונות של פונקציה של JavaScript בדף האינטרנט הטוען את המסמך וכך היא הופכת להיות פרמטר של הפונקציה. בזמן הטעינה תופעל פונקציה ותקבל גישה לאובייקט הג’ייסון דרך פרמטרים של הפונקציה.

 

איך מחלצים מידע משדות ג’ייסון?

חילוץ המידע משדה ג’ייסון ניתן לביצוע במספר דרכים: בעזרת פעולת SELECT נוכל לחלץ את הקוד וליצור שדה רגיל הניתן לקריאה כל שפת תכנות. זו גישה מיידית לחילוץ מידע מהיר אבל היא עלולה לסבך ולסרבל את הקוד החדש שייכתב ב-SQL. שיטות נוספות ואפקטיביות יותר לכתיבת קוד פשוט יותר הן יצירת שאילתא חיצונית, חילוץ בגישת טבלאות זמניות או בגישת טבלאות קבועות. הבחירה בשיטה הנכונה תיעשה בהתאם לאופי מסמך הג’ייסון, ליכולת של אנשי הפיתוח לקבל הרשאת גישה לדאטה בייס והאם מנהלי הדאטה בייס הגדירו אזור סנדבוקס ליצירת טבלאות ללא הרשאת גישה.

 

מהם היתרונות של שימוש בג’ייסון?

ג’ייסון נחשב לפורמט טקסטואלי קל להבנה הן לאנשי קוד אנושיים והן למערכות מחשוב. כתיבת קוד ג’ייסון מבוססת זוגות של מפתח-ערך, שיטת כתיבה ועריכה נוחה מאוד.

בנוסף, ג’ייסון הוא פורמט קל משקל ביחס לפורמט XML. ג’ייסון כפורמט קטן יעיל יותר מפורמטים אחרים לצורך העברת נתונים ברשת.

כיום, סטנדרט התקשורת בין שרת ללקוח באמצעות API הוא באמצעות JSON. רוב הווב-סרווייס משתמשים בג’ייסון כפורמט תקשורת אופטימלי מה שמקל על ביצוע אינטגרציה בין מערכות.

יתרונות אלו ונוספים הופכים את השימוש בג’ייסון לבחירה הנפוצה בפיתוח והטמעת מערכות תוכנה הנדרשות לאינטגרציה ביניהן.

 

ניהול כמות גדולה של נתונים

פורמט זה נחשב לקל מאוד לשימוש (הן ביחס לתוכנה והן ביחס ליוצרי קבצי ג’ייסון שלא נדרשים ליצור קוד כדי להשתמש בו). ונעשה בו שימוש עיקרי בניהול כמויות גדולות של נתונים בצורה מקוונת ובמצב אופליין. קוד ג’ייסון שוקל מעט ולכן תומך במהירות אתר ואינו מכביד על האחסון יחד עם זה שהוא קל מאוד להבנה ולוולידציה.

 

לסיכום

ג’ייסון הינו מבנה נתונים שאינו תלוי שפה המהווה פורמט נפוץ ביותר להעברת מידע בין שרתים ובין שרת ללקוח. ג’ייסון כפורמט העברת מידע משתמש במבנה הפשוט של אובייקט ג’אווה סקריפט כדי לאחסן בו מידע בצורה שכל שפת תכנות תוכל לקרוא בקלות. בהתאם ליכולת זו, רוב ה-APIs כיום משתמשים בפורמט ג’ייסון כדי לקבל ולהעביר נתונים שונים. המידע אודות העצמים ייעשה באופן של זוגות (מפתח : ערך) כמבני מידע קלים ונוחים לכתיבה וקריאה.

 

שאלות ותשובות בנושא מה זה ג’ייסון?

ג’ייסון הם ראשי התיבות של המושג: JavaScript Object Notation. Nדובר בפורמט קובץ להעברת מידע העושה שימוש בטקסט שקריא לאדם ולכל שפות המחשב במטרה לבצע העברת מידע באמצעות זוגות מפתח-ערך המרכיבים מבני מידע. העובדה כי פורמט ג’ייסון זהה בכל שפות התכנות מאפשר העברת מידע בין מערכות, תוכנות ומחשבים ללא צורך בהתאמה לשפה בה נכתבה התוכנה. ג’ייסון הוא אחד מהפורמטים הפופולריים להעברת מידע בין APIs כיום.

 

  • שמות שדות הקיפו במרכאות כפולות
  • ערכים שהם גם מחרוזות – הקיפו במרכאות כפולות
  • אין חובה להקיף ערכי מספרים במרכאות
  • סוגים בוליאניים כתבו באותיות קטנות בלבד 
  • ציון ערכים ריקים או חסרים בעזרת NULL

חשוב מאוד להקפיד על כללים תחביריים בכתיבת קוד ג’ייסון כיוון ש -API יקראו את התוכן רק בתנאי שהג’ייסון נכתב באופן תקני. jsonlint.com הוא כלי באמצעותו ניתן לבדוק את תקינות קוד הג’ייסון שכתבתם.

ג’ייסון קל לקריאה על ידי כל שפות התכנות וקל לכתיבה והבנה על ידי בני אדם. בנוסף, מדובר בפורמט קל מאוד המשפיע על יכולת הטעינה של התוכנה ועל יכולות האחסון שלה.

 

מה זה ג'ייסון?
מה זה ג’ייסון?
הפיצו לחברים