מהו מחולל סכמת JSON?
מחולל סכימת JSON קורא ערך JSON לדוגמה - תגובת API, קובץ תצורה, מטען webhook - וכותב סכימת JSON שמאמתת אותו. הוא מסיק את הסוג של כל שדה, ממזג מערך של אובייקטים לסכימת פריט בודדת ולא לאיחוד רועש, גוזר אילו מפתחות נדרשים מאלה הקיימים בכל רשומה, ויכול לתייג פורמטים של מחרוזת כמו תאריך-שעה, דואר אלקטרוני, uri ו-uuid. אתה מדביק נתונים שכבר יש לך; אתה מקבל את הסכימה שאחרת היית כותב ביד סעיף אחר סעיף.
כתיבת סכימה ביד היא איטית וקלה לטעות בעדינות מפתה להקליד את מה שאתה חושב שמטען מכיל, להחמיץ שדה מקונן, לסמן מאפיין מדי פעם ריק כנדרש, או לשכוח שנקודת קצה אחת מחזירה מערך שבו אחרת מחזירה אובייקט בודד סכימה שנוצרת ישר מנתונים אמיתיים מתחילה מהצורה בפועל, כך שהמסמך שאתה מאמת מול תואם את מה שהשירות באמת שולח משם אתה מהדק אילוצים - דפוסים, enums, מינימום - ביד, אבל הפיגום המייגע נעשה.
הכל פועל בדפדפן שלך מנוע ההסקה הוא TypeScript ללא תלות, לא עטיפה סביב API מתארח, כך שמטענים - הנושאים באופן שגרתי אסימונים, מיילים ומזהים פנימיים - לעולם אינם עוזבים את הדף בחר Draft-07 או בניב 2020-12, הוסף כותרת, החלף זיהוי שדות חובה, זיהוי פורמטים ו-`additionalProperties` קפדני, ולאחר מכן העתק את הסכימה או הורד אותה כקובץ.json.
הסכימה מתארת את המדגם שלך ולא את הכוונה שלך, אז התייחס לפלט כטיוטה ראשונה: שדות נדרשים מוסקים ממה שקורה, ופורמטים מזוהים לפי דפוס, כך שמחרוזת שנראית כמו תאריך מוקלדת כאחת אפילו כאשר מדובר במזהה שרק דומה לאחד.
הנה דוגמה מעובדת למחולל סכימת JSON מ-JSON עם יותר מרשומה אחת. הדבק [{"id":1,"email": "[email protected]","nick":"x"},{"id":2,"email":null}] ולחץ על Generate. הפלט הוא סכימת מערך שלפריטים שלה יש id כמספר שלם, email כ-["string", "null"] ו-nick כמחרוזת, עם ההגדרה הנדרשת ל-id ו-email, מכיוון שחסר nick מהרשומה השנייה. הכותרת קוראת 3 מאפיינים, 2 נדרשים, עומק 2, 219 בתים. זה התפקיד של כל מחולל סכימות JSON ל-JSON: כל רשומה שתוסיף יכולה להרחיב סוג או להוריד מפתח מהנדרש.
כיצד להשתמש במחולל סכמת JSON?
הדבק את ה-JSON שלך
שחרר תגובת API, מתקן או כל ערך JSON. טען תחילה את הדוגמה כדי לראות כיצד אובייקטים מקוננים, מערכים של אובייקטים ופורמטים של מחרוזות מטופלים.
בחר את הניב
בחר Draft-07 עבור התמיכה הרחבה ביותר בכלי עבודה או 2020-12 עבור המפרט הנוכחי. ה-$schema URI הנכון נכתב על הפלט עבורך.
הגדר את האפשרויות שלך
הוסף כותרת אופציונלית, החליט אם לפלוט מערך נדרש, לזהות פורמטים של מחרוזות ולנעול אובייקטים עם מאפיינים נוספים: FALSE לאימות קפדני.
ליצור, ולאחר מכן להעתיק או להוריד
לחץ על GENERATE. סקור את הסוגים המשוערים והשדות הנדרשים, ולאחר מכן העתק את הסכימה ללוח שלך או הורד אותה כקובץ .json מוכן לכניסה לאימות שלך.
תכונות מפתח
טיוטה-07 ו-2020-12 פלט
פולט את הניב DRAFIT-07 הנתמך בהרחבה או את המפרט הנוכחי של 2020-12. מזהה $schema התואם נכתב על השורש כך שהמאמתים בחר את הכללים הנכונים.
מיזוג מערך חכם
מערך של אובייקטים הופך לסכימת פריטים בודדים המתארת אלמנט אחד, לא לשום דבר רחב ידיים. נדרשים מפתחות הקיימים בכל אלמנט; מפתחות המופיעים רק בחלקם נותרו אופציונליים.
הסקה שדה נדרשת
המחולל שואב את המערך הנדרש ממפתחות הקיימים בכל אובייקט שהוא רואה, וכך בדיוק מתנהגים נתונים מעומדים אמיתיים - שדות מסוימים תמיד שם, אחרים לא.
זיהוי פורמט מחרוזת
מזהה תאריך-שעה, תאריך, שעה, דואר אלקטרוני, URI, UUID ו-IPv4 ומתייג אותם עם מילת המפתח המתאימה בפורמט, מה שנותן לך אימות שאחרת היית מוסיף ביד.
Frequently Asked Questions
Related Tools
JSON Flattener
Flatten nested JSON into single-level dot-notation keys, or unflatten dotted keys back into nested objects and arrays. Lossless round trip. 100% client-side.
JSON to Go Struct
Convert JSON into Go struct definitions with json tags. Nested objects become inline structs, arrays of objects are merged, and field names follow Go conventions. Runs client-side.
JSON to TypeScript
Generate TypeScript interfaces from any JSON sample. Infers nested types, merges arrays of objects into a single interface, marks nullable and missing keys optional, and emits clean exportable code. 100% client-side.
JSONPath Tester
Test JSONPath expressions against any JSON and see the matched values and their paths instantly. Supports wildcards, recursive descent, slices, and filters. 100% client-side.
Comments
0 comments
No comments yet. Be the first to share your thoughts!