الأدوات
الأدلة

منسِّق ومُحقِّق JSON

JSON

تنسيق وتحقق وضغط JSON. تحديد دقيق لموقع الخطأ بالصف والعمود، مع تلوين بناء الجملة.

100% من جهة العميل بدون خادم خلفي

لا يتم جلب الروابط البعيدة؛ الصق JSON مباشرة.

الإدخال
الإخراج
الصق JSON على اليسار لرؤيته منسَّقًا هنا.
في هذه الصفحة

ما هو منسِّق JSON؟#

يأخذ منسِّق JSON كتلةً كثيفةً من JSON — تلك التي يسجّلها خادم في سطر واحد، أو تلك التي يخرجها باندلر (bundler) مصغَّرة — ويعيد كتابتها بمسافات بادئة منتظمة ليستطيع الإنسان قراءتها. يبدو هذا بسيطًا، لكن المنسِّق هو أوّل أداة تلجأ إليها عادةً حين يفشل طلب ما، أو حين يحتوي ملف إعداد على خطأ مطبعي، أو حين تبدو حمولتان متطابقتين لكنهما تتصرفان بشكل مختلف.

تقوم هذه الصفحة بثلاث مهام مترابطة في مكان واحد. فهي تنسّق للطباعة الجميلة (تضيف مسافات بادئة وفواصل أسطر)، وتتحقق (تخبرك إن كان النص JSON صالحًا أصلًا)، وتضغط (تزيل كل بايت من المسافات الزائدة لأصغر حمولة ممكنة). وعندما يفشل التحقق، لا تكتفي شريط الحالة بكلمة “خطأ” — بل تُبلِّغ عن الصف والعمود بدقّة، وهو ما يُفرّق غالبًا بين إصلاح يستغرق خمس ثوانٍ وعشرين دقيقة من التحديق.

كيفية الاستخدام#

  1. الصق JSON في لوحة الإدخال على اليسار. يمكنك أيضًا النقر على مثال لتحميل مثال صغير إن أردت فقط رؤية السلوك.
  2. اختر نمط المسافة البادئة من شريط الأدوات: مسافتان، 4 مسافات، أو علامة جدولة. المسافتان هي الاتفاق الأكثر شيوعًا؛ وعلامات الجدولة مفيدة إن كنت بصدد اللصق في محرّر يستخدمها أصلًا.
  3. اختر ما تريد فعله أيضًا:
    • تنسيق — طباعة جميلة بمسافة الإزاحة التي اخترتها.
    • ضغط — الطي إلى سطر واحد بلا مسافات. مثالي قبل اللصق في متن طلب.
    • تحقق — فحص البنية دون تغيير النص؛ مفيد عندما تريد إجابة بنعم/لا فقط.
  4. فعِّل ترتيب المفاتيح إن أردت إصدار خصائص الكائن بترتيب أبجدي. هذا مفيد بشكل مدهش عند مقارنة استجابتين من إصدارين مختلفين من واجهة برمجية: مع المفاتيح المرتَّبة، لا يبقى من الفروق سوى التي تهم فعلًا.
  5. فعِّل السماح بالفواصل الزائدة للحصول على نسخة مرنة ومريحة للقراءة (فاصلة بعد العنصر الأخير). لاحظ أن المحلّلات الصارمة سترفض هذا — فعِّله للقراءة المحلية فقط.
  6. اقرأ النتيجة في لوحة الإخراج. يُبلِّغ شريط الحالة أسفلها إمّا بـ Valid JSON أو بموقع الخطأ بدقّة (row:col — message). استخدم نسخ لأخذ المخرجات.

الميزات الرئيسية#

  • محلّل أصلي صارم. مبني على تطبيق JSON الخاص بالمتصفح نفسه، فما يُقبَل هنا هو ما يُقبَل وقت التشغيل. لا لهجة مخصّصة ولا مفاجآت.
  • موقع خطأ دقيق. فاصلة زائدة، أو مفتاح بلا علامات اقتباس، أو قوس مفقود — يُبلَّغ عن كلٍّ منها بصفّها وعمودها، لا مجرد “خطأ تحليل” عام.
  • ثلاثة أنماط إزاحة. مسافتان، 4 مسافات، علامات جدولة.
  • ترتيب المفاتيح والفواصل الزائدة الاختيارية. بدّل أيًّا منهما لكل مهمة دون إعادة اللصق.
  • 100% من جهة العميل. يُعالَج النص الذي تلصقه الصفحةُ داخل متصفحك. لا يُرفع أبدًا — فلا خادم خلفي ليُرفع إليه.
  • عدّاد أحرف حي. تُظهر كلتا اللوحتين حجمها، مما يساعد حين تحاول تقليص بايتات حمولة.

مثال عملي#

تخيّل أن نقطة نهاية إعداد تُعيد هذه الكتلة المضغوطة وتحتاج إلى اكتشاف مفتاح مُسمّى بشكل خاطئ:

المدخلات (مضغوطة، سطر واحد):

{"server":"api.example.com","port":443,"retry":{"count":3,"backoffMs":[100,400,1600]},"tags":["prod","primary"]}

انقر تنسيق مع إزاحة مسافتان وترتيب المفاتيح مُفعَّل:

{
  "port": 443,
  "retry": {
    "backoffMs": [
      100,
      400,
      1600
    ],
    "count": 3
  },
  "server": "api.example.com",
  "tags": [
    "prod",
    "primary"
  ]
}

مع ترتيب المفاتيح، يجلس backoffMs بجانب count، وترى فورًا الشكل الأُسّي (100، 400، 1600) الذي كان خفيًّا في نسخة السطر الواحد. لاحظ أن tags لا تزال ["prod","primary"] — فترتيب المفاتيح يعيد ترتيب خصائص الكائن فقط؛ ولا يلمس عناصر المصفوفة أبدًا، فالترتيب الذي تُدخلها به هو ذاته الترتيب الذي تحصل عليه.

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

هل تُرفع بياناتي؟#

لا. يتم التحليل بواسطة واجهة JSON المدمجة في المتصفح داخل هذه الصفحة. لا نقطة نهاية خادم ولا طلب شبكة — تبقى مدخلاتك على جهازك.

شريط الحالة يقول إن JSON غير صالح لكنه يبدو سليمًا. ما العمل؟#

تحقّق من الصف والعمود المُبلَّغ عنهما. أشيع أربعة أسباب: فاصلة زائدة قبل إغلاق } أو ]، علامات اقتباس مفردة حول السلاسل (JSON يتطلب علامات مزدوجة)، مفتاح كائن بلا علامات اقتباس، ومحرف تبويب أو تحكّم حرفي لُصق من محرّر آخر. رقم العمود يشير إلى المُخطِئ تمامًا.

ماذا يفعل “ترتيب المفاتيح” تحديدًا؟#

يُعيد إصدار خصائص كل كائن بترتيب أبجدي (ترتيب ASCII، حساس لحالة الأحرف). تُترك المصفوفات بترتيبها الأصلي — فترتيب المفاتيح لا يعيد ترتيب عناصر المصفوفة أبدًا، لأن ترتيب المصفوفة ذو معنى دلالي.

هل يستطيع التعامل مع الملفات الكبيرة جدًا؟#

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