סמל אתר HailBytes

מדריך לסכימת JSON

סכמת JSON

מדריך ל-JSON Schema

לפני שנכנס ל-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:


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

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

יצירת סכימת JSON

בואו נסתכל על דוגמה של JSON Schema כדי לראות על מה אנחנו מדברים. אובייקט 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 אחר. ביטוי אובייקט 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.

צא מגרסת הנייד