ما هو مولد مخطط JSON؟
يقرأ JSON Schema Generator نموذجًا لقيمة JSON - استجابة API، وملف تكوين، وحمولة خطاف الويب - ويكتب مخطط JSON الذي يتحقق من صحته. فهو يستنتج نوع كل حقل، ويدمج مصفوفة من الكائنات في مخطط عنصر واحد بدلاً من الاتحاد الصاخب، ويستمد المفاتيح المطلوبة من تلك الموجودة في كل سجل، ويمكنه وضع علامة على تنسيقات السلسلة مثل التاريخ والوقت والبريد الإلكتروني وuri وuuid. أنت تلصق البيانات التي لديك بالفعل؛ تحصل على المخطط الذي كنت ستكتبه يدويًا جملة تلو الأخرى.
إن كتابة المخطط يدويًا أمر بطيء ومن السهل أن تخطئ بمهارة. من المغري كتابة ما تعتقد أن الحمولة تحتوي عليه، أو تفويت حقل متداخل، أو وضع علامة على خاصية فارغة أحيانًا كما هو مطلوب، أو نسيان أن إحدى نقاط النهاية تُرجع مصفوفة حيث تُرجع نقطة نهاية أخرى كائنًا واحدًا. يبدأ المخطط الذي يتم إنشاؤه مباشرة من البيانات الحقيقية من الشكل الفعلي، وبالتالي فإن المستند الذي تتحقق من صحته يتطابق مع ما ترسله الخدمة حقًا. ومن هناك تقوم بتشديد القيود - الأنماط، والتعدادات، والحد الأدنى - يدويًا، ولكن يتم تنفيذ السقالات المملة.
كل شيء يعمل في متصفحك. محرك الاستدلال هو TypeScript خالي من التبعية، وليس غلافًا حول واجهة برمجة التطبيقات المستضافة، لذا فإن الحمولات - التي تحمل بشكل روتيني الرموز المميزة ورسائل البريد الإلكتروني والمعرفات الداخلية - لا تغادر الصفحة أبدًا. اختر Draft-07 أو لهجة 2020-12، وأضف عنوانًا، وقم بتبديل اكتشاف المجال المطلوب، واكتشاف التنسيق، و`additionalProperties` الصارم، ثم انسخ المخطط أو قم بتنزيله كملف .json.
يصف المخطط عينتك بدلاً من نيتك، لذا تعامل مع الإخراج كمسودة أولى: يتم استنتاج الحقول المطلوبة مما يحدث، ويتم اكتشاف التنسيقات بواسطة النمط، لذلك تتم كتابة السلسلة التي تبدو وكأنها تاريخ كسلسلة واحدة حتى عندما يكون معرفًا يشبه واحدًا فقط.
فيما يلي مثال عملي لمولد مخطط JSON من JSON مع أكثر من سجل واحد. لصق [{"id":1،"email":"[email protected]"، "nick":"x"}،{"id":2،"email": null}] واضغط على إنشاء. الإخراج عبارة عن مخطط مصفوفة تحتوي عناصره على معرف كعدد صحيح، والبريد الإلكتروني كـ ["سلسلة"، و"null"] وnick كسلسلة، مع تعيين nick المطلوب على المعرف والبريد الإلكتروني، لأن nick مفقود من السجل الثاني. يقرأ الرأس 3 خصائص، 2 مطلوب، عمق 2، 219 بايت. هذه هي مهمة أي مولد مخطط JSON إلى JSON: كل سجل تضيفه يمكنه توسيع نوع أو إسقاط مفتاح من المطلوب.
كيفية استخدام مولد مخطط JSON؟
الصق JSON الخاص بك
قم بإسقاط استجابة API أو أداة تثبيت أو أي قيمة JSON. قم بتحميل العينة أولاً لمعرفة كيفية التعامل مع الكائنات المتداخلة ومصفوفات الكائنات وتنسيقات السلسلة.
اختر اللهجة
اختر Draft-07 للحصول على أوسع دعم للأدوات أو 2020-12 للمواصفات الحالية. يتم كتابة مخطط $ $ الصحيح في الإخراج نيابة عنك.
اضبط خياراتك
أضف عنوانًا اختياريًا ، وحدد ما إذا كنت تريد إصدار مصفوفة مطلوبة ، واكتشاف تنسيقات السلسلة ، وقفل الكائنات باستخدام خصائص إضافية: خطأ للتحقق الصارم.
توليد ثم نسخ أو تنزيل
اضغط على توليد. راجع الأنواع المستنتجة والحقول المطلوبة ، ثم انسخ المخطط إلى الحافظة الخاصة بك أو قم بتنزيله كملف .json جاهز للإسقاط في المدقق الخاص بك.
الميزات الرئيسية
مخرجات 07 و2020-12
تصدر إما لهجة Draft-07 المدعومة على نطاق واسع أو المواصفات الحالية 2020-12. يتم كتابة معرف المخطط المطابق على الجذر بحيث يختار المدققون القواعد الصحيحة.
دمج مصفوفة ذكية
تصبح مصفوفة الكائنات مخططًا للعناصر الفردية يصف عنصرًا واحدًا ، وليس أيًا من العناصر المترامية الأطراف. المفاتيح الموجودة في كل عنصر مطلوبة ؛ المفاتيح التي تظهر في بعضها فقط هي اختيارية.
استدلال المجال المطلوب
يستمد المولد المصفوفة المطلوبة من المفاتيح الموجودة في كل كائن يراه، وهو بالضبط ما تتصرف به البيانات المرقّمة الحقيقية - بعض الحقول موجودة دائمًا، والبعض الآخر ليس كذلك.
كشف تنسيق السلسلة
يتعرف على التاريخ والوقت والتاريخ والوقت والبريد الإلكتروني وسلاسل 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!