منسق ومدقق JSON
نسّق، تحقق، وصغّر أكواد JSON — مع تحديد دقيق لمكان الخطأ عند حدوثه.
سيظهر كود JSON المنسق هناكل شيء يعمل داخل متصفحك. كود JSON الخاص بك لا يُرفع إلى أي خادم.
JSON هي اللغة التي تتحدث بها الحواسيب مع بعضها، وأكبر قوتها — بنية صارمة لا لبس فيها — هي أيضًا ما يجعلها غير متسامحة في القراءة والكتابة يدويًا. فاصلة مفقودة واحدة، أو زائدة حيث لا تنتمي، أو قوس غير متطابق يحوّل مستندًا كاملًا لخطأ، وشكوى الآلة نادرًا مفيدة عن الموضع. تُنسّق هذه الأداة JSON الفوضوي لبنية نظيفة مُزاحة قابلة للقراءة؛ وتتحقّق منه وتشير بالضبط أين ينكسر؛ وتُصغّره مجددًا للنقل. كل شيء يعمل في متصفحك، فحتى استجابات API الحساسة وملفات التهيئة لا تغادر جهازك أبدًا.
كيف تعمل الأداة
الصق JSON الخاص بك وتحلّله الأداة. إن كان صالحًا، تستعيده مُزاحًا بجمال وقابلًا للقراءة، أو مُصغَّرًا لأصغر حجم ممكن، أيهما تختار. إن كان مكسورًا، تخبرك الأداة بما هو خطأ وأين — السطر والحرف المحدد — فتُصلح المشكلة بالضبط بدل البحث عبر المستند كله. التحليل يحدث كليًا في متصفحك؛ لا شيء تلصقه يُرفع، ما يهم لأن JSON غالبًا يحتوي رموزًا ومفاتيح وبيانات خاصة.
القواعد التي يفرضها JSON
JSON الصالح يتطلّب:
"المفاتيح" دائمًا بعلامات اقتباس مزدوجة
"السلاسل" مزدوجة فقط، مفردة أبدًا
لا فاصلة زائدة {"a":1,} ← غير صالح
لا تعليقات // ... ← غير صالح
القيم: سلسلة، رقم، منطقي، null، كائن، مصفوفة
تنسيق = إضافة إزاحة وفواصل أسطر (قابل للقراءة)
تصغير = تجريد كل المسافات (صغير، للنقل)صرامة JSON هي المقصود كله والإحباط كله. خلافًا لكائنات جافاسكربت التي يشبهها، يحظر JSON الاقتباسات المفردة والفواصل الزائدة والتعليقات والمفاتيح غير المُقتبَسة — قواعد يكسرها الناس باستمرار لأن جافاسكربت تسمح بها. التنسيق والتصغير نفس البيانات الصالحة بمسافات مختلفة: الإزاحة تجعلها مقروءة للبشر، وتجريد المسافات يجعلها مُدمجة للشبكة، حيث كل بايت من حمولة كبيرة يهم. لا أحدهما يغيّر البيانات، فقط عرضها، ولهذا تستطيع التحويل بينهما بحرية.
ما يجب معرفته عن العمل مع JSON
- 1أشيع أخطاء JSON الفواصل الزائدة والاقتباسات المفردة. جافاسكربت تتسامح مع كليهما، فيكتبهما المطوّرون بالعادة، لكن JSON الصارم يرفض كليهما تمامًا. كائن ينتهي بـ`,}` أو سلسلة بـ'اقتباسات مفردة' هو JSON غير صالح رغم أنه يبدو جيدًا. حين يفشل JSON في التحليل، افحص هذين أولًا — يشكّلان حصة كبيرة من كل الأخطاء.
- 2نسّق أثناء التطوير، صغّر قبل الإرسال. JSON المُزاح أسهل قراءةً وتصحيحًا بكثير، فأبقِه مُنسّقًا أثناء عملك. لكن للنقل — استجابات API، تهيئة تُرسَل عبر الشبكة — التصغير يجرّد كل بايت غير ضروري، ما يهم على النطاق حيث حمولة كبيرة تُرسَل ملايين المرات تتراكم. الشكلان نفس البيانات لجمهورين مختلفين: البشر والآلات.
- 3موضع الخطأ أسرع طريقك لإصلاح. مُتحقّق يسمّي سطر وحرف المشكلة يحوّل بحثًا محبطًا لإصلاح مُوجَّه. بدل مسح مستند كامل بحثًا عن قوس مفقود، اقفز مباشرةً حيث اختنق المحلّل — الخطأ الحقيقي عادةً عند أو قبل تلك النقطة، حتى لو ظهر العَرَض لاحقًا.
- 4JSON بلا تعليقات، وهذا يُعثِر الناس باستمرار. ملفات التهيئة غالبًا تريد تعليقات توضيحية، لكن JSON الصارم يحظرها، ولهذا صيغ كـJSONC وJSON5 موجودة لإضافتها مجددًا. إن احتجت تعليقات في تهيئة شبيهة بـJSON، فأنت تستخدم لهجة موسّعة، لا JSON معياريًا — والمحلّلات المعيارية سترفض التعليقات.
- 5احذر JSON المُرمَّز مزدوجًا. باگ شائع سلسلة JSON تحتوي بنفسها JSON مُهرَّبًا — قيمة كـ`"{\"a\":1}"` بدل كائن حقيقي. يحدث حين تُسلسَل البيانات مرتين، ويُقرأ كسلسلة صرفة لا بيانات مُهيكلة. إن بدا حقل كـJSON ملفوفًا في اقتباسات بشرطات عكسية، فقد رُمّز مرة زائدة.
الأسئلة الشائعة
لماذا JSON الخاص بي غير صالح رغم أنه يبدو صحيحًا؟
دائمًا تقريبًا فاصلة زائدة أو اقتباسات مفردة. جافاسكربت تسمح بكليهما — كائن كـ`{"a": 1,}` أو سلسلة بـ'اقتباسات مفردة' — فيكتبهما المطوّرون بالعادة، لكن JSON الصارم يحظر كليهما، وأيهما يجعل المستند كله غير صالح. مذنبون متكرّرون آخرون المفاتيح غير المُقتبَسة والتعليقات، التي تسمح بها جافاسكربت وJSON لا. حين لا يُحلَّل JSON يبدو صالحًا، افحص فاصلة زائدة واقتباسات مفردة أولًا؛ تسبّبان حصة كبيرة من الأخطاء.
ما الفرق بين التنسيق والتصغير؟
نفس البيانات بمسافات مختلفة. التنسيق يضيف إزاحة وفواصل أسطر لجعل JSON مقروءًا للبشر، مثالي أثناء التطوير والتصحيح. التصغير يجرّد كل المسافات غير الضرورية لجعل الملف أصغر ما يمكن للنقل، مثالي لاستجابات API وأي شيء يُرسَل عبر الشبكة حيث يهم الحجم. لا أحدهما يغيّر البيانات الفعلية — تستطيع التحويل بينهما بحرية، مستخدمًا الشكل المقروء للعمل والمُدمج للإرسال.
هل يستطيع JSON امتلاك تعليقات؟
لا — JSON المعياري لا يسمح بتعليقات من أي نوع، ما يفاجئ من يستخدمه لملفات تهيئة حيث ستساعد الملاحظات التوضيحية. هذا خيار تصميمي متعمّد للبساطة واللالبس. لهجات موسّعة كـJSONC (JSON بتعليقات) وJSON5 تضيف دعم التعليقات، لكنها ليست JSON معياريًا، ومحلّل صارم سيرفض التعليقات كغير صالحة. إن احتاجت تهيئتك تعليقات، تحتاج إحدى تلك اللهجات، لا JSON صرفًا.
لماذا يظهر الخطأ على سطر مختلف عن المشكلة الحقيقية؟
لأن المحلّل يفشل فقط حين يبلغ شيئًا لا يمكن أن يكون صالحًا، وهو غالبًا بعد الخطأ الفعلي. فاصلة مفقودة أو قوس غير مُغلَق يترك المحلّل يواصل حتى تصير البنية مستحيلة، ثم يُبلّغ النقطة التي استسلم عندها — وقد تكون أسطرًا لاحقة. الإصلاح الحقيقي عادةً عند أو قبل الموضع المُبلَّغ، فافحص البنية المؤدية للخطأ، لا السطر المُسمّى فقط.
هل تُرسَل بيانات JSON لخادم؟
لا. التحليل والتنسيق والتحقّق والتصغير كلها تعمل كليًا في متصفحك، فيُعالَج JSON محليًا ولا يُرسَل أو يُسجَّل أو يُخزَّن. يمكنك التحقق بقطع الإنترنت — تواصل الأداة العمل لأنه لا يوجد خادم معني. هذا يهم لأن JSON غالبًا يحتوي مفاتيح API ورموز وصول وبيانات شخصية وأسرار تهيئة لا تريد رفعها لأي مكان.