מדריך ל-JSON Schema

סכמת JSON

לפני שנכנס ל-JSON Schema, חשוב לדעת את ההבדל בין JSON ל-JSON Schema.

JSON

JSON הוא קיצור של JavaScript Object Notation, והוא פורמט נתונים בלתי תלוי בשפה שבו ממשקי API משתמשים כדי לשלוח בקשות ותשובות. JSON קל לקריאה ולכתיבה עבור אנשים ומכונות כאחד. JSON הוא פורמט מבוסס טקסט שאינו קשור לשפה (ללא תלות בשפה).

סכמת JSON

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

ישנם שלושה חלקים עיקריים למפרט JSON Schema:

JSON Hyper-Schema:

JSON Hyper-Schema היא שפת JSON Schema שעשויה לשמש לתיוג מסמכי JSON עם היפר-קישורים והוראות לעיבוד ושינוי משאבי JSON חיצוניים באמצעות סביבות מבוססות טקסט כמו HTTP. נְקִישָׁה כאן למידע נוסף על JSON Hyper-Schema.

ליבת סכמת JSON:

זוהי מערכת כללים לתיוג ואימות מסמכי JSON. 

ליבת סכמת JSON:

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

אימות סכמת JSON:

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

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

אנו יכולים לבדוק את אובייקט ה-JSON שלנו באמצעות כלי אימות ה-JSON Schema:

JSON Validator ללא שגיאות

יש לנו אימות גיל (מינימום = 20 ומקסימום = 40) כפי שמוצג באיור למעלה. לא נמצאו שגיאות.

JSON Validator עם שגיאה

הוא הציג שגיאה אם ​​אימות הגיל הוזן בצורה שגויה.

יצירת סכימת JSON

בואו נסתכל על דוגמה של JSON Schema כדי לראות על מה אנחנו מדברים. אובייקט JSON בסיסי המתאר קטלוג מוצרים הוא כדלקמן:

דוגמה ל- JSON

סכימת ה-JSON שלו עשויה להיכתב באופן הבא:

תוצאת סכימת JSON

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

בואו נסתכל מקרוב על מילות המפתח שבהן השתמשנו בדוגמה שלנו: 

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

"כותרת"וגם"תיאור" מילות מפתח הן רק הסבר; הם אינם מטילים מגבלות כלשהן על הנתונים הנבדקים. שתי מילות מפתח אלו מתארות את מטרת הסכימה: היא מתארת ​​מוצר.

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

 

JSON Schema נתמך על ידי הספריות הבאות:

 

שפה

סִפְרִיָה

C

WJElement

פיתון

jschon

PHP

תיאור Json Schema

JavaScript

ajv

Go

gojsonschema

קוטלין

Media-validator

אוֹדֶם

JSONSchmer

JSON (תחביר)

בואו נסתכל קצר על התחביר הבסיסי של JSON. תחביר JSON הוא תת-קבוצה של תחביר JavaScript הכוללת את האלמנטים הבאים:

  • נעשה שימוש בצמדי שם/ערך המייצגים נתונים.
  • אובייקטים מוחזקים בסוגריים מסולסלים, וכל שם מובל על ידי ':' (נקודתיים), עם צמדי ערכים מופרדים ב-"," (פסיק).
  • הערכים מופרדים על ידי "," (פסיק) ומערכים מוחזקים בסוגריים מרובעים.
דוגמה לתחביר JSON

שני מבני הנתונים הבאים נתמכים על ידי JSON:

  • רשימת ערכים מסודרת: זה יכול להיות מערך, רשימה או וקטור.
  • אוסף של זוגות שם/ערך: שפות מחשב שונות תומכות במבנה נתונים זה.

 

JSON (אובייקט)

סכימת JSON היא אובייקט JSON שמתאר את הסוג והמבנה של אובייקט JSON אחר. ביטוי אובייקט JavaScript יכול לייצג אובייקט JSON בסביבות זמן ריצה של JavaScript. כמה דוגמאות לאובייקטי סכימה חוקיים הן כדלקמן:

סכימה

משחקים

{}

כל ערך

{ type: 'object' }

אובייקט JavaScript

{ סוג: 'מספר' }

מספר JavaScript

{ type: 'string'}

מחרוזת JavaScript

למשל:

יצירת אובייקט חדש ריק:

var JSON_Obj = {};

יצירת אובייקט חדש:

var JSON_Obj = אובייקט חדש()

JSON (השוואה ל-XML)

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

מוּרכָּבוּת

מכיוון ש-XML מורכב יותר מ-JSON, מתכנתים מעדיפים JSON.

שימוש במערכים

XML משמש לביטוי נתונים מובנים; עם זאת, XML אינו תומך במערכים, אך JSON כן.

ניתוח

JSON מתפרש באמצעות פונקציית ה-eval של JavaScript. eval מחזירה את האובייקט המתואר בשימוש עם JSON.

 

דוגמא:

 

JSON

XML

{

   "חברה": פרארי,

   "שם": "GTS",

   "מחיר": 404000

}

 

 

פרארי 

 

GTS 

 

404000 

 

יתרונות סכימת JSON

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

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

היתרון העיקרי של JSON Schema הוא התאימות שלה למגוון שפות תכנות, כמו גם הדיוק והעקביות של האימות.

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

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

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