تنسيق JSON — تجميل وضغط وتحقق
تجميل JSON وضغطه والتحقق منه وترتيب المفاتيح، مع تحديد الخطأ بالسطر والعمود
تعمل في متصفحك · لا يُرفع أي شيء
ما هذه الأداة؟
يحوّل منسق JSON سطرًا طويلًا واحدًا من JSON إلى نص مرتب بمسافات بادئة يسهل قراءته، أو يزيل كل المسافات الاختيارية لتصغير حجمه. استخدمه لفحص استجابة API، أو ترتيب ملف إعدادات، أو العثور على الموضع الذي انكسرت فيه الصياغة. تتحدث النتيجة أثناء الكتابة، فلا حاجة إلى الضغط على أي زر.
طريقة الاستخدام
- الصق JSON في مربع الإدخال.
- اختر المسافة البادئة: مسافتان أو 4 مسافات أو Tab، أو اختر «ضغط».
- فعّل «ترتيب المفاتيح» إذا أردت ترتيب المفاتيح حسب رمز الحرف. يشمل ذلك الكائنات المتداخلة داخل الكائنات وداخل المصفوفات.
- انسخ النتيجة. إذا وُجد خطأ فسيظهر رقم السطر والعمود، فابدأ الإصلاح من هناك.
كيف تعمل؟
- القواعد هي قواعد JSON في RFC 8259 (ECMA-404): المفاتيح والنصوص بين علامتي تنصيص مزدوجة فقط، بلا تعليقات ولا فواصل زائدة في النهاية.
- يبدأ ترقيم الأسطر والأعمدة في مواضع الأخطاء من 1. ويُحتسب كل من
\nو\r\nو\rالمنفرد فاصل أسطر واحدًا. وتُعدّ الأعمدة بالأحرف (نقاط الترميز)، فيشغل الرمز التعبيري عمودًا واحدًا، وتحاكي علامة ^ تحت سطر الخطأ مسافات Tab كما هي. الأعداد التي تتجاوز الحد فتصبح Infinity (مثل1e999) تتحول إلىnullمع تحذير، ويُرفض التداخل الأعمق من 512 مستوى برسالة واضحة. - يعمل ترتيب المفاتيح في كل المستويات بترتيب وحدات الترميز (الأحرف الكبيرة قبل الصغيرة) ولا يغيّر ترتيب المصفوفات. والمفتاح الذي يظهر مرتين في الكائن نفسه (
{"a":1,"a":2}) لا تبقى منه إلا قيمته الأخيرة وفق قواعد JSON، فتظهر النتيجة مع تحذير يذكر المفتاح والسطر والعمود اللذين تكرر فيهما. وبسبب طريقة عمل كائنات JavaScript، تأتي المفاتيح التي تشبه الأعداد الصحيحة مثل"1"و"2"أولًا دائمًا بالترتيب العددي مهما كان الخيار. - يحتفظ الإخراج بالأحرف العربية والصينية والكورية والرموز التعبيرية كما هي، ولا يُهرّب إلا ما يتطلبه JSON مثل
\nو\". ويُكتب تهريب Unicode مثل"A"بالشكل"A". - تُقرأ الأعداد بوصفها Number في JavaScript. ولا تُحفظ الأعداد الصحيحة الأكبر من 2^53 بدقة، وينبهك تحذير إلى ذلك.
أمثلة
| الإدخال | الخيار | النتيجة |
|---|---|---|
{"b":1,"a":{"d":2,"c":3}} |
ضغط + ترتيب المفاتيح | {"a":{"c":3,"d":2},"b":1} |
{"name":"أحمد"} |
مسافتان | عدة أسطر، "name": "أحمد" |
{"a": 1,} |
— | السطر 1، العمود 9: حرف غير متوقع } |
{"id": 12345678901234567890} |
ضغط | {"id":12345678901234567000} (مع تحذير) |
الأسئلة الشائعة
هل سأعرف أين يوجد الخطأ في JSON؟
نعم. تفحص الأداة الإدخال من بدايته وتعرض رقم السطر والعمود لأول حرف يخالف القواعد، مع ذلك السطر وعلامة ^ تحت الموضع. وتحسب الأداة الموضع بنفسها بدلًا من الاعتماد على صياغة رسائل خطأ المتصفح، فتحصل على الإجابة نفسها في كل متصفح.
هل تقبل التعليقات أو الفواصل الزائدة في النهاية؟
لا. لا يُقبل إلا JSON الصارم كما يعرّفه RFC 8259. التعليقات والفواصل الزائدة والنصوص بين علامتي تنصيص مفردة والمفاتيح غير المحاطة بعلامات تنصيص كلها تُعرض كأخطاء مع موضعها.
هل يمكن أن تتغير الأعداد الكبيرة جدًا؟
نعم. تستخدم الأداة محلل JSON في JavaScript، لذا تُقرَّب الأعداد الصحيحة التي تتجاوز 9007199254740991 (أي 2^53-1) إلى أقرب قيمة قابلة للتمثيل، ويظهر تحذير عندما يحتوي الإدخال على عدد كهذا. ضع المعرّفات بهذا الحجم بين علامتي تنصيص إذا كان كل رقم فيها مهمًا.
هل يُرسَل JSON الخاص بي إلى خادم؟
لا. تجري المعالجة كلها في متصفحك، ولا يُرفع شيء أو يُخزَّن.