قراءة 7 دقيقة

تنسيق JSON والتحقق منه: من رسالة الخطأ إلى مخطط جاهز

كيف تقرأ أخطاء JSON، وتحوّل بين JSON وYAML وXML، وتولّد أنواع TypeScript ومخططات Zod من عيّنة بيانات حقيقية داخل المتصفح.

الخلاصة

دليل عملي لتشخيص أخطاء JSON وتحويله إلى صيغ أخرى وتوليد مخططات يمكن استخدامها في مشاريع TypeScript.

أكثر أخطاء JSON شيوعًا

رسائل الخطأ في المتصفح قد تكون غامضة، لذلك من المفيد استخدام أداة تحدد رقم السطر والعمود. ابدأ من الموضع المشار إليه، ثم ابحث قبلَه بسطر أو سطرين لأن الخطأ الحقيقي غالبًا يسبق مكان اكتشافه.

  • فاصلة ناقصة بين العناصر أو فاصلة زائدة بعد آخر عنصر.
  • استخدام علامات تنصيص مفردة بدل المزدوجة.
  • وجود تعليق داخل JSON؛ التعليقات غير مسموح بها في المعيار.
  • قيم غير مدعومة مثل undefined أو NaN.

من التحقق إلى التحويل

  1. 1الصق النص أو الحمولة في مساحة JSON/YAML في استوديو صيغ البيانات.
  2. 2اضغط التحقق لتحديد موضع أي خطأ نحوي، ثم صحّحه.
  3. 3اختر التنسيق أو التحويل المطلوب (YAML، XML، TOML) بحسب النظام الذي تستهدفه.
  4. 4إذا كنت ستبني عميل API، استخدم مساحة المخططات لتوليد واجهة TypeScript أو مخطط Zod.
  5. 5راجع المخطط الناتج وأضف الحقول الاختيارية التي لم تظهر في العيّنة.

لماذا لا يكفي استنتاج المخطط من عيّنة واحدة؟

الاستنتاج يقرأ القيم الموجودة أمامه فقط. إذا كان حقل ما فارغًا في كل العيّنات التي جربتها، فقد يظهر كأنه اختياري رغم أنه إلزامي في الإنتاج، والعكس ممكن. اعتبر المخطط الناتج نقطة انطلاق، ثم قارنه بوثائق API الرسمية أو عيّنات من أزمنة مختلفة.

خصوصية بيانات API

كثير من حمولات API تحتوي رموز وصول أو بيانات مستخدمين. إجراء التحقق والتحويل داخل المتصفح يعني أن هذه الحمولات لا تُرسل إلى خدمة تنسيق خارجية، وهو فرق جوهري عند التعامل مع بيانات بيئات الإنتاج.

مصادر ومراجع تقنية

المعلومات العامة عن الصيغ والمعايير مستندة إلى المراجع التالية. خطوات الأداة نفسها مبنية على واجهتها الفعلية كما هو موضح أعلاه.

أسئلة شائعة

ما الفرق بين JSON وYAML؟

JSON صيغة صارمة تعتمد الأقواس والفواصل وتُستخدم على نطاق واسع في واجهات API، بينما يسمح YAML بالمسافات البادئة والتعليقات ويُستخدم غالبًا في ملفات الإعداد. YAML أكثر قابلية للقراءة البشرية لكنه أكثر حساسية للمسافات.

هل Zod بديل عن التحقق على الخادم؟

لا. Zod يتحقق من شكل البيانات في تطبيق JavaScript، لكن الخادم يجب أن يتحقق دائمًا من كل ما يصل إليه، لأن أي عميل يمكنه تجاوز عميلك.