التنسيق والتصغير والتحقق
التنسيق يضيف مسافات بادئة إلى JSON ليقرأ الإنسان بنيته؛ والتصغير يحذف كل مسافة اختيارية لتقليص حجم النقل. والذي يتغير هو العرض وحده — فالبيانات متطابقة في الحالتين، والتنقل بينهما لا يغيّر قيمة أبدًا.
التحقق يحاول التحليل ويبلّغ عن نجاحه من عدمه. وعند الفشل يبلّغ أيضًا عن موضع توقف المحلل، وهو ليس موضع بدء الخطأ بل موضع استحالة المتابعة. والسبب الحقيقي يقع عادة قبله بقليل في النص.
عرض المسافة البادئة مسألة ذوق وعرف فريق. فمسافتان توفران المساحة الأفقية في البيانات شديدة التداخل، وأربع تسهّلان تتبع البنية، والصفر لا يترك سوى فواصل الأسطر، وهو مناسب لقراءة مدخل واحد في كل مرة.
لماذا يفشل تحليل JSON عادة
الفاصلة الزائدة بعد المدخل الأخير هي السبب الأشيع. فالكائنات الحرفية في جافاسكربت تسمح بها والمعيار لا يسمح، ويسهل نسيانها بعد حذف مدخل. تحقق أولًا مما يسبق كل قوس إغلاق مباشرة.
علامات الاقتباس المفردة ليست JSON صحيحًا. فالمفاتيح والقيم النصية تحتاج إلى اقتباس مزدوج، وعادة جافاسكربت في ترك المفاتيح بلا اقتباس لا تنتقل إلى هنا. وهذا يقع غالبًا حين يُنسخ مقطع مباشرة من الشيفرة المصدرية.
التعليقات ليست جزءًا من المعيار كذلك. فتعليقات الشرطتين المائلتين الشائعة في ملفات الإعداد لا تسمح بها إلا امتدادات مثل JSON5 أو JSONC، فيحتاج المحلل القياسي إلى حذفها. وكذلك NaN و Infinity و undefined لا تمثيل لها.