كل المقالات

JSON Formatter: التنسيق والتصغير والتحقق

العمل مع نص JSON يتلخص عادة في ثلاث مهام مختلفة: جعله قابلاً للقراءة، أو جعله مضغوطًا، أو التحقق من أنه صحيح أصلاً. هذه ثلاث عمليات منفصلة، رغم أنها غالبًا ما تُجمَع في أداة واحدة.

التنسيق (pretty-print)

يضيف التنسيق مسافات بادئة وفواصل أسطر ومسافات حول علامات الترقيم لتسهيل قراءة بنية JSON بالعين. هذا تغيير تجميلي بحت — لا يؤثر على البيانات، بل على طريقة عرضها فقط.

التصغير (minify)

يزيل التصغير كل المسافات وفواصل الأسطر والمسافات البادئة غير الضرورية، تاركًا فقط الأحرف اللازمة فعلاً. هذا يقلل حجم الملف، وهو أمر مهم عند نقل البيانات عبر الشبكة أو تخزين كميات كبيرة منها — بنية البيانات نفسها لا تتغير.

التحقق

يتحقق التحقق مما إذا كان النص صيغة JSON صحيحة نحويًا. الأخطاء النموذجية التي يكتشفها: فاصلة زائدة قبل قوس الإغلاق، علامات اقتباس مفردة بدل المزدوجة، مفاتيح كائن بلا علامات اقتباس، تعليقات (لا تسمح بها مواصفات JSON إطلاقًا)، أو أقواس غير مغلقة. صحة JSON شرط أساسي لعمل التنسيق أو التصغير أصلاً.

متى نحتاج ماذا

  • التنسيق — عند تصحيح استجابات API أو التحرير اليدوي لملفات الإعداد.
  • التصغير — قبل إرسال البيانات عبر الشبكة أو تضمينها في كود الإنتاج.
  • التحقق — عند تشخيص سبب رفض المحلِّل قراءة ملف JSON.

لماذا يتحول النص العربي إلى تسلسلات \u

تقوم أغلب أدوات التسلسل بترميز أي حرف خارج نطاق ASCII بشكل افتراضي: حقل مثل "الاسم": "محمد" يخرج من json.dumps() في بايثون، بلا الخيار ensure_ascii=False، على شكل "محمد". الملف يبقى JSON صحيحًا قبل هذا الترميز وبعده، لكنه يصبح غير قابل للقراءة عند تصحيح استجابة API أو تدقيق سجلّ (log) يحتوي أسماء أو عناوين بالعربية. ومن الجدير بالذكر أن JSON نفسه يشترط أن تكون الأرقام داخل النص بالأرقام اللاتينية (0-9)؛ الأرقام الهندية العربية (٠١٢٣) المستخدمة شائعًا في الكتابة اليدوية لا تصلح كأرقام JSON، ويجب أن تبقى كنص إن استُخدمت أصلاً.

JSON5 وJSONC ليسا نفس JSON

بعض البيئات (مثل ملفات إعداد VS Code أو TypeScript) تقبل الفواصل الزائدة والتعليقات ومفاتيح بلا علامات اقتباس — هذه امتدادات JSON5 أو JSONC، وليست JSON قياسيًا (RFC 8259). المُحقِّق المضبوط على JSON صارم سيرفض هذا الملف بحق، رغم أن المحرر «يفهمه».

جرّب الأداة