مدقق JSON
تحقق من أن نص JSON يطابق الصياغة القياسية، وافهم سبب قبول المدخل أو رفضه قبل استخدام البيانات.
افحص صياغة JSON قبل استخدام البيانات
قد يوقف اقتباس مفقود أو فاصلة زائدة أو قوس غير مغلق واجهة API أو ملف إعداد أو خطوة بناء قبل وصول البيانات إلى الكود. يتيح لك مدقق JSON فحص النص وفق قواعد JSON والتمييز بين خطأ الصياغة والفحوص اللاحقة الخاصة بالتطبيق.
المقصود بالتحقق هنا هو تحليل النص المرسل على أنه JSON. نجاح التحليل يعني أن البنية مقبولة لدى المدقق، لكنه لا يثبت وجود الحقول المطلوبة أو توافق القيم مع JSON Schema أو قواعد العمل ما لم تُنفذ تلك الفحوص منفصلة.
الفرق بين صحة الصياغة ومعنى البيانات
يتكون JSON القياسي من كائنات ومصفوفات ونصوص وأرقام وقيم منطقية وnull. تستخدم أسماء الأعضاء والنصوص علامتي اقتباس مزدوجتين، وتفصل العناصر بفواصل، ويجب إغلاق الأقواس بالترتيب الصحيح. التعليقات والفواصل الأخيرة ليست من القواعد القياسية.
يجيب المدقق عن سؤال ضيق: هل يمكن تحليل هذا المصدر كقيمة JSON؟ لا يصلح المصدر تلقائياً، ولا ينفذ كوداً مضمناً، ولا يرسل طلباً إلى API، ولا يقرر ما إذا كانت القيمة مفيدة لتطبيقك. اجعل التحقق من المخطط وقواعد المجال خطوات مستقلة.
طريقة التحقق من JSON
- الصق قيمة JSON كاملة واحدة في حقل المصدر.
- شغّل المدقق واقرأ حالة القبول أو نتيجة التشخيص.
- عند الرفض راجع الاقتباسات والفواصل والأقواس ومحارف الهروب والقيمة القريبة من الموضع المشار إليه.
- بعد نجاح الصياغة، نفذ فحوص المخطط وقواعد التطبيق التي يتطلبها مشروعك.
منهج التحقق
- قراءة القواعد
يحاول المدقق تحليل المصدر الكامل كقيمة JSON. يجب أن تستخدم المدخلات الرموز وقواعد التعشيق المقبولة.
- إظهار القبول أو الرفض
تعني النتيجة الناجحة اكتمال التحليل، بينما يعني الرفض أن المصدر لم يطابق الصياغة التي يفهمها المدقق.
- فصل الفحوص اللاحقة
الحقول المطلوبة والنطاقات والصلاحيات وقواعد المخطط فحوص معنوية تحتاج إلى دليل مستقل، ولا يجوز استنتاجها من نجاح التحليل.
لا تخترع رقم سطر أو رسالة خطأ محددة ما لم تعرضها الأداة فعلياً لهذا المدخل.
قراءة نتيجة التحقق
تعني النتيجة الصحيحة أن النص المرسل قُبل كصياغة JSON. بعد ذلك يمكنك فحص القيم أو تمريرها إلى تحقق من المخطط وقواعد التطبيق.
تعني النتيجة المرفوضة توقف التحليل. اقرأ التشخيص في سياقه وافحص المحارف قبل الموضع المشار إليه وبعده، ولا تعتبر نتيجة الصياغة شرحاً لكل مشكلة ممكنة في البيانات.
أخطاء شائعة
كثيراً ما يُلصق المستخدم كتابة JavaScript تحتوي على اقتباس مفرد أو تعليق أو فاصلة أخيرة. حوّلها إلى JSON قياسي بدلاً من افتراض أن الصيغ المتشابهة متبادلة.
قد يخلط المستخدم بين النتيجة الصحيحة والتحقق من المخطط. راجع الحقول المطلوبة ونطاقات القيم والصلاحيات في النظام الذي يملك هذه القواعد.
القيود
المدخل الموثق هو حقل نص JSON. هذا لا يثبت وجود حقول JSON Schema أو تحقق من قواعد العمل أو معالجة ملفات أو سلوك موحد لكل الحالات الخاصة بالمحلل.
المفاتيح المكررة والأرقام الكبيرة جداً وترميز البيانات الناتجة تستحق اختبارات مستقلة عندما يكون سلوك المستهلك مهماً.
Examples
قبول كائن بسيط
هل الكائن الأساسي JSON صحيح؟
أرسل الكائن كاملاً.
يستخدم المصدر أسماء بين اقتباسين ونصاً وقيمة منطقية داخل بنية كائن صحيحة.
رفض اسم بلا اقتباس
لماذا يكون اسم الخاصية بلا اقتباس غير صحيح؟
أرسل المصدر وافحص سبب الرفض.
تتطلب صيغة JSON القياسية أن يكون اسم العضو نصاً بين علامتي اقتباس مزدوجتين.
قبول بيانات متداخلة
هل يمكن أن يحتوي الكائن على مصفوفة من الكائنات؟
أرسل القيمة المتداخلة كمستند واحد.
تكون المصفوفة والكائنات والأرقام والفواصل والأقواس ضمن صياغة JSON صحيحة.
رفض فاصلة أخيرة
ماذا تفعل الفاصلة بعد آخر عضو؟
أرسل الكائن مع الفاصلة الأخيرة.
الفاصلة الأخيرة غير مسموحة في JSON القياسي. احذفها ثم أعد التحقق.
الحفاظ على null
هل null قيمة JSON صحيحة؟
أرسل الكائن واقرأ الحالة.
null قيمة قياسية في JSON. أما معناها داخل التطبيق فهو قرار منفصل.
رفض قوس إغلاق مفقود
لماذا يجب إغلاق كل قوس؟
أرسل البنية غير المتوازنة.
بدأت المصفوفة بالرمز [ لكنها لم تُغلق بالرمز ]. صحح التعشيق قبل استخدام البيانات.
Frequently asked questions
هل JSON الصحيح يعني أن بيانات التطبيق صحيحة؟
لا. يعني أن النص قابل للتحليل كـJSON. الحقول المطلوبة والأنواع والنطاقات وقواعد العمل تحتاج إلى فحوص أخرى.
هل يستطيع المدقق إصلاح المصدر؟
تعامل معه كأداة فحص. صحح المصدر بنفسك ثم أرسله من جديد للتحقق من النص المعدل.
هل التعليقات مسموحة؟
ليست مسموحة في JSON القياسي. احذفها أو استخدم خطوة معالجة موثقة تنتج JSON قياسياً.
لماذا تُرفض الاقتباسات المفردة؟
تستخدم صيغة JSON القياسية علامتي الاقتباس المزدوجتين للأسماء والنصوص، بينما تنتمي المفردة إلى بعض لغات البرمجة.
هل يفحص JSON Schema؟
العقد الموثق يذكر حقل نص JSON ولا يذكر حقل مخطط. لا تنسب تحقق المخطط بلا دليل مستقل.
هل يمكن أن تكون المصفوفة قيمة المستوى الأعلى؟
يمكن لـJSON تمثيل مصفوفة كقيمة. أرسل مصفوفة كاملة واقرأ النتيجة وفق الصيغة التي يدعمها المدقق.
هل تُرفض المفاتيح المكررة دائماً؟
لا تفترض سياسة موحدة. قد يعتمد القبول والقيمة الناتجة على المحلل، لذلك اختبر المستهلك عند أهمية التكرار.
ماذا أفعل بعد نجاح التحقق؟
نفّذ فحوص مشروعك مثل JSON Schema والصلاحيات ونطاقات القيم واختبارات التكامل.
