RevealTheme logo

أداة تنسيق JSON والتحقق منه

نسّق JSON وجمّله وتحقّق منه وصغّره. تعمل بالكامل في متصفحك، لذا فإن بياناتك لا تغادر جهازك أبدًا.

كيفية استخدام هذه الأداة

  1. 1

    الصق JSON الخاص بك في حقل الإدخال.

  2. 2

    انقر على «تنسيق» لعرضه بمسافات بادئة وبصيغة قابلة للقراءة، أو على «تصغير» لإزالة المسافات البيضاء.

  3. 3

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

  4. 4

    انسخ النتيجة إلى الحافظة لديك.

ما هو JSON ولماذا يهمّ تنسيقه؟

JSON (JavaScript Object Notation) هو اللغة المشتركة لواجهات برمجة تطبيقات الويب الحديثة وملفات الإعداد وتسجيل الأحداث المنظَّم. كل واجهة برمجة تطبيقات REST وGraphQL تُعيد JSON؛ وكل ملف package.json وtsconfig.json ومعظم إعدادات التكامل المستمر (CI) هي JSON؛ كما تتحدث AWS وGCP وAzure بلغة JSON في واجهات سطر الأوامر الخاصة بها. تكمن قوة JSON في قواعده النحوية الدنيا: ستة أحرف بنيوية ({}، []، الفاصلة، النقطتان، علامتا التنصيص)، وأربعة أنواع أولية (سلسلة نصية، رقم، قيمة منطقية، وnull)، وتداخل تعاودي. هذا التبسيط هو أيضًا عيبه: لا يدعم JSON التعليقات، ولا الفواصل اللاحقة، ولا المفاتيح بلا علامات تنصيص، ولا السلاسل النصية متعددة الأسطر. علامة تنصيص أو فاصلة واحدة في غير موضعها تُفسد المستند بأكمله. تتحقق هذه الأداة من الإدخال وفق RFC 8259 (مواصفة JSON) ثم تعرضه بمسافات بادئة متّسقة لقراءته، أو تزيل كل المسافات البيضاء لنقله عبر الشبكة. يجري التحليل والتنسيق بالكامل في متصفحك عبر دالتي JSON.parse وJSON.stringify الأصليتين في محرك JavaScript، وهو الكود نفسه الذي يُشغَّل على خوادم Node.js وفي جميع المتصفحات. وهذا يعني أن بياناتك لا تنتقل أبدًا عبر الشبكة، وأن سلوك التحقق هنا يطابق تمامًا ما سيراه كودك في الإنتاج.

حالات الاستخدام الشائعة

  • صحّح أخطاء استجابات واجهات برمجة التطبيقات بلصقها في أداة التنسيق: شاهد فورًا البنية التي يخفيها JSON المُصغَّر.

  • تحقّق من JSON قبل إرساله إلى مستهلك صارم (AWS CloudFormation، أو بيانات Kubernetes، وغيرها).

  • جمّل سجلات مكتبات التسجيل المنظَّم (Pino وBunyan) التي تُصدر JSON في سطر واحد.

  • صغّر ملفات الإعداد قبل تضمينها في HTML أو في متغيرات البيئة (حجم أصغر وبايتات أقل للتحليل).

  • نسّق حمولات JSON Web Token بعد فك ترميزها من base64.

  • قارن استجابتين من واجهة برمجة تطبيقات بتنسيق كليهما ومقارنة الاختلافات بينهما.

الأسئلة الشائعة

هل يغادر JSON الخاص بي المتصفح؟
لا. يحدث كل التحليل والتنسيق في متصفحك عبر الدالتين المدمجتين JSON.parse وJSON.stringify. لا تصل البيانات أبدًا إلى خادم ولا تظهر في السجلات. آمن للاستخدام مع استجابات واجهات برمجة التطبيقات التي تحتوي على رموز أو بيانات عملاء أو أسرار أخرى.
هل يمكنني تنسيق JSON5 أو JSONC (مع تعليقات)؟
لا: تتبع هذه الأداة مواصفة JSON الصارمة (RFC 8259). التعليقات والفواصل اللاحقة أخطاء في بناء الجملة وستُنتج رسالة خطأ من المحلّل. أما للأنواع المرنة من JSON، فاستخدم محلّل JSON5 مثل json5.org، أو مرّر إدخالك عبر معالج مسبق يزيل التعليقات أولاً.
ما حجم المسافة البادئة الذي ينبغي أن أستخدمه؟
مسافتان هما اصطلاح JavaScript والويب، والأكثر عالمية. أما 4 مسافات فهي القيمة الافتراضية في منظومة Python (تطابق المسافة البادئة في PEP 8). تُعرَض علامات الجدولة (tabs) بشكل غير متّسق بين المحرّرات وتُعطّل أدوات المقارنة؛ تجنّبها ما لم يكن لدى فريقك اصطلاح صارم باستخدام علامات الجدولة. الخيار جمالي بحت؛ فالمحلّلات لا تكترث به.
لماذا يهمّ JSON المُصغَّر؟
يوفّر JSON المُصغَّر بايتات، وهو أمر ذو أهمية على نطاق واسع (مثلاً، واجهة برمجة تطبيقات عامة تُعيد 100 كيلوبايت من البيانات لملايين الطلبات). أما لملفات الإعداد الصغيرة (بضعة كيلوبايتات)، فالفرق ضئيل. أزمنة التحليل في المتصفح متطابقة لـ JSON المنسّق والمُصغَّر، لذا فالسبب الوحيد للتصغير هو عرض النطاق الترددي.
كيف أفسّر رسائل الخطأ؟
تتضمن رسائل الخطأ من JSON.parse في JavaScript الموضع (الإزاحة من البداية) الذي فشل عنده التحليل. أخطاء شائعة: عادةً ما تشير 'Unexpected token' إلى علامة تنصيص أو فاصلة مفقودة، أو حرف خاص لم يُهرَّب. أما 'Unexpected end of JSON input' فتعني أن المستند مبتور. وغالبًا ما تشير 'Unexpected non-whitespace character' إلى فاصلة لاحقة.
هل يمكنني تنسيق ملفات JSON كبيرة جدًا؟
تعالج دالة JSON.parse في المتصفح ملفات يصل حجمها إلى نحو 100 ميغابايت قبل أن يصبح الأداء مشكلة. أما للملفات الأكبر، فاستخدم jq في سطر الأوامر: إذ يمكنه معالجة ملفات JSON ضخمة بشكل عشوائي عبر التدفق (streaming).
ما الفرق بين JSON والكائنات الحرفية في JavaScript؟
JSON هو مجموعة فرعية صارمة من بناء جملة الكائنات الحرفية في JavaScript. الاختلافات: يجب أن تكون مفاتيح JSON سلاسل نصية بين علامتي تنصيص مزدوجتين (يسمح JS بمفاتيح بلا علامات تنصيص وبعلامات تنصيص مفردة)؛ ويمنع JSON التعليقات والفواصل اللاحقة وundefined؛ ولا يحتوي JSON على تعبيرات ولا استدعاءات دوال ولا قيم محسوبة. يمكن لـ JavaScript تقييم JSON بأمان؛ أما JSON فلا يمكنه تقييم JavaScript عشوائي.

أدوات ذات صلة