منسّق JSON ومدقّقه

الصق JSON لتنسيقه بشكل مقروء أو ضغطه أو معرفة موضع الخطأ بالضبط. كل شيء يعمل في متصفحك، فلا يُرفع أي شيء.

إدخال JSON

المسافة البادئة
يتم التحقق على جهازك. لا يُرفع JSON الخاص بك أبدًا.

الناتج

JSON صالح
الحجم
—
المفاتيح
—
عمق التداخل
—

كيف تستخدم منسّق JSON

يتحقق منسّق JSON هذا من صحة JSON وينسّقه بشكل مقروء بمجرد لصقه، فتستطيع قراءة استجابة API أو إصلاح ملف إعدادات أو ترتيب بيانات الاختبار دون تثبيت أي شيء.

  1. الصق JSON في مربع الإدخال، أو اضغط تحميل مثال للتجربة.
  2. اختر المسافة البادئة: مسافتان (شائعة في مشاريع JavaScript)، أو 4 مسافات (شائعة في Python وJava)، أو Tab.
  3. اختر تنسيق للحصول على ناتج مقروء، أو ضغط للحصول على أصغر نص ممكن.
  4. اضغط نسخ، أو تنزيل ‎.json لحفظ النتيجة في ملف.

إذا كان JSON معطوبًا، يُستبدل مربع الناتج برسالة خطأ تتضمن رقم السطر والعمود ومقتطفًا صغيرًا مع علامة (^) أسفل الموضع المحدد.

أخطاء JSON الشائعة وكيفية إصلاحها

يشبه JSON لغة JavaScript، لكن قواعده أكثر صرامة بكثير. هذه الأخطاء هي سبب معظم رسائل "JSON غير صالح":

غير صالحصالحالسبب
{'name': 'Ana'}{"name": "Ana"}تحتاج النصوص والمفاتيح إلى علامات تنصيص مزدوجة.
{name: "Ana"}{"name": "Ana"}يجب وضع المفاتيح بين علامات تنصيص.
[1, 2, 3,][1, 2, 3]لا فاصلة بعد العنصر الأخير.
{"a": 1 "b": 2}{"a": 1, "b": 2}تُفصل العناصر بفواصل.
{"n": 007}{"n": 7}لا أصفار بادئة في الأرقام.
{"ok": True}{"ok": true}تُكتب true وfalse وnull بأحرف صغيرة.
// comment(احذفه)التعليقات ليست جزءًا من JSON.

عندما يشير الخطأ إلى سطر ما، يكون الخطأ الحقيقي غالبًا قبله مباشرة. فالفاصلة المفقودة مثلًا لا تُكتشف إلا عندما يصل المحلل إلى القيمة التالية.

كيف يعمل المنسّق

تقرأ الأداة نصك حرفًا حرفًا وفق معيار JSON (RFC 8259). وأثناء القراءة تبني الناتج المنسّق وتتوقف عند أول قاعدة تُخالَف. ولأنها لا تحوّل القيم أبدًا إلى أرقام JavaScript، تبقى الأرقام الكبيرة جدًا مثل معرّفات 64 بت والكسور العشرية الطويلة كما كتبتها تمامًا، وتُترك تسلسلات الهروب مثل \u00e9 دون تغيير.

تعرض الأرقام أسفل الناتج حجم النتيجة، وعدد المفاتيح في جميع الكائنات، وأعمق مستوى من التداخل. التداخل العميق لا يمثل مشكلة للآلات، لكنه قد يشير إلى أن البنية أعقد مما ينبغي.

تنسيق أم ضغط؟

إليك الكائن نفسه بالأسلوبين:

{"id":7,"tags":["a","b"]}

{
  "id": 7,
  "tags": [
    "a",
    "b"
  ]
}

على الويب، يقلّص ضغط gzip أو Brotli المسافات البيضاء جيدًا بالفعل، لذا تكمن أهمية الضغط غالبًا في حدود التخزين وحجم الطلبات لا في سرعة التنزيل.

الخصوصية والحدود

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

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

كيف أنسّق JSON على الإنترنت؟

الصق JSON في مربع الإدخال. يتم فحصه وتنسيقه فورًا بمسافتين؛ ويمكنك التبديل إلى 4 مسافات أو Tab إن شئت، ثم انسخ النتيجة أو نزّلها كملف ‎.json.

لماذا JSON الخاص بي غير صالح؟

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

ماذا يعني ضغط JSON؟

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

هل يسمح JSON بالتعليقات أو الفواصل الزائدة؟

لا. معيار JSON ‏(RFC 8259) لا يسمح بأي منهما. بعض الأدوات تقبل JSONC أو JSON5 اللذين يسمحان بهما، لكن المحلل الصارم مثل الموجود في المتصفحات ومعظم واجهات API سيرفضهما.

هل يُرسل JSON الخاص بي إلى خادم؟

لا. يتم التحليل والتنسيق بالكامل في متصفحك باستخدام JavaScript. لا تغادر بياناتك جهازك، لذا فهو آمن لمفاتيح API أو بيانات العملاء، مع أنه يُستحسن دائمًا تجنب مشاركة الأسرار.