ملف إعدادات القالب الذي أعدّله فيه تعليقات // و /* */، فلماذا يقول المدقق إنه ليس JSON صالحًا؟

لأن JSON القياسي، وفق المعيار RFC 8259، ليس فيه تعليقات أصلًا، فيشير منسّق JSON إلى أول تعليق على أنه موضع الخطأ. بعض المنصات والمحررات تقبل صيغة خاصة بها من JSON تسمح بالتعليقات، ولهذا قد يعمل الملف عندها. لفحص البيانات نفسها انسخها دون أسطر التعليقات، ثم تحقق منها ونسّقها، واحتفظ بالتعليقات في نسختك الأصلية.

نُشر في · دقائق قراءة: 2

أين يتوقف المدقق؟

ثلاثة أشكال شائعة للتعليق في ملفات الإعدادات، وكيف ترد الأداة على كل منها:

/* settings */ {"a":1}

تعليق كتلة في أول الملف: الخطأ عند السطر 1، العمود 1. لم يبدأ الملف بقوس ولا بقيمة، فتوقف المحلّل عند أول حرف.

{ // colors "primary": "#0F6B5F" }

تعليق سطر كامل داخل الكائن: الخطأ عند السطر 2، العمود 3، أي عند أول شرطة مائلة حيث كان المحلّل ينتظر اسم مفتاح.

{ "a": 1 // note }

تعليق في آخر سطر بعد قيمة: الخطأ عند السطر 2، العمود 10. بعد القيمة 1 ينتظر المحلّل فاصلة أو قوس إغلاق، فيجد شرطة مائلة.

لماذا يعمل الملف في منصتي إذن؟

لأن المنصة لا تقرؤه بالضرورة على أنه JSON قياسي. بعض المنصات والمحررات تستخدم قارئًا يتسامح مع التعليقات ويتجاهلها. هذا لا يجعل الملف JSON صالحًا وفق المعيار، بل يعني أن تلك المنصة تقبل صيغتها الخاصة. لذلك قد يعمل الملف هناك، ويفشل إن نسخته إلى أداة أو نظام آخر يقرأ بصرامة. كيف تتعامل منصتك مع التعليقات تحديدًا تجده في توثيقها، ولا نفترضه نحن.

كيف تفحص البيانات وحدها؟

  1. انسخ الملف إلى محرر نصوص، واحفظ نسخة أصلية كما هي بتعليقاتها.
  2. في نسخة العمل احذف أسطر التعليقات والتعليقات في آخر الأسطر.
  3. افتح منسّق ومدقّق JSON والصق النسخة بلا تعليقات. إن ظهر «JSON صالح» فالبيانات نفسها سليمة.
  4. إن ظهر خطأ آخر، مثل فاصلة زائدة بعد آخر عنصر، فهو خطأ حقيقي في البيانات: صححه في النسختين.
  5. إن كانت المنصة تقبل التعليقات، فارفع نسختك الأصلية بعد التصحيح، لا النسخة المنسّقة، حتى لا تضيع التعليقات.

لماذا لا تتجاهل الأداة التعليقات؟

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

وانتبه: إن نسّقت الملف في الأداة ثم نسخت الناتج، فالناتج بلا تعليقات أصلًا، لأنها لم تكن جزءًا من البيانات. لذلك احتفظ بالأصل.

أسئلة شائعة

هل تحذف الأداة التعليقات لي؟

لا. تشير إلى أول تعليق كخطأ فقط، وأنت تحذفها في نسخة العمل.

هل رمز اللون #0F6B5F داخل نص يسبب مشكلة؟

لا. ما بين علامتي التنصيص نص عادي، والعلامة # فيه لا تعني شيئًا للمحلّل.

هل الإعدادات التي ألصقها تُرسل إلى خادم؟

لا، تُحلل داخل متصفحك.