منسّق JSON
أداة مجانية عبر الإنترنت للتحقق من صحة JSON وتنسيقه (Pretty Print) وضغطه (Minify).
1,441 مشاهدة
كيف يعمل
JSON (اختصار JavaScript Object Notation) ليس مجرد "بيانات بنكهة جافاسكريبت" — بل هو تنسيق صارم ومستقل بذاته يحدده معيار RFC 8259. صياغته تشبه تعبير كائن (object literal) في جافاسكريبت، لكن قواعده أكثر صرامة: يجب أن يستخدم كل مفتاح وكل قيمة نصية علامات اقتباس مزدوجة ("key") وليس علامات مفردة أبداً؛ ووجود فاصلة بعد آخر عنصر في كائن أو مصفوفة — ما يُعرف بـالفاصلة الزائدة (trailing comma) — يُعد خطأ نحوياً قاطعاً؛ كما أن مفاهيم خاصة بجافاسكريبت وحدها مثل undefined والدوال والتعليقات أو NaN ليس لها أي مقابل في JSON إطلاقاً. تُمرِّر هذه الأداة مُدخلاتك عبر محرك JSON.parse() الأصلي في المتصفح، وهو نفس المحلِّل الذي يستخدمه عميل API إنتاجي أو محمّل إعدادات حقيقي، لذا فإن أي خطأ تراه هنا هو خطأ سيرفضه أي نظام حقيقي أيضاً.
على سبيل المثال، {'id': 12, 'active': true,} يفشل في التحقق مرتين: علامات الاقتباس المفردة حول id غير صالحة، والفاصلة الزائدة بعد true غير صالحة أيضاً. الصيغة الصحيحة هي {"id": 12, "active": true}. بمجرد أن يجتاز JSON الخاص بك التحقق بنجاح، تقوم وظيفة التنسيق (Beautify) بإعادة مسافات بادئة لكل مستوى متداخل — فتصبح المصفوفات داخل الكائنات داخل المصفوفات قابلة للتتبع بصرياً، وهذا مهم عند البحث عن قوس مفقود على عمق ستة مستويات في استجابة API. أما الضغط (Minify) فيفعل العكس: يزيل كل مسافة بيضاء غير ضرورية ويدمج الناتج في سطر واحد، مما يقلّص حجم الحمولة للتخزين أو النقل عبر الشبكة. كلا الوضعين يحافظان على البيانات نفسها تماماً — فقط التخطيط الموجّه للبشر هو الذي يتغيّر.
يثبت هذا النوع من الأدوات جدواه في العمل اليومي للتطوير: لصق استجابة API خام لمعرفة شكلها الفعلي قبل كتابة كود يتعامل معها، أو فحص ملف إعدادات شبيه بـ.env بحثاً عن فاصلة شاردة قبل أن يتسبب ذلك في فشل عملية النشر، أو تحويل حمولة شبكة مُفرَّغة من أدوات المطوّر في المتصفح — غالباً سطر واحد غير قابل للقراءة — إلى شيء يمكنك فعلاً مسحه بعينيك.
ما يجب أن تعرفه
- كل شيء يعمل محلياً. لا يُرفع أي نص إلى خادم — يحدث التحقق والتنسيق والضغط جميعها داخل محرك جافاسكريبت الخاص بمتصفحك.
- الأعداد الصحيحة الكبيرة قد تفقد دقتها. تتبع أعداد JSON معيار الفاصلة العائمة المزدوجة الدقة IEEE 754؛ فمعرّفات 64 بت التي تتجاوز حوالي 2^53 قد تُقرَّب بصمت عند تحليلها كأعداد أصلية بدلاً من الاحتفاظ بها كنصوص.
- ترتيب المفاتيح غير مضمون في المعيار، رغم أن معظم المحلِّلات تحافظ عملياً على ترتيب الإدخال — لا تكتب منطقاً يعتمد على ذلك.
- القيمة على المستوى الأعلى ليست ملزمة بأن تكون كائناً. يسمح JSON الحديث (وفق RFC 8259) بأن يكون الجذر نصاً مجرداً أو رقماً أو قيمة منطقية أو
nullأو مصفوفة — فكلا من"hello"و42وثيقتا JSON صالحتان تماماً بمفردهما.
الأسئلة الشائعة
كيف أتحقق من صحة JSON الخاص بي؟
الصق JSON الخاص بك في مربع الإدخال واضغط زر التنسيق (Beautify). إذا كانت البيانات صحيحة سترى تأكيداً بأن "JSON صحيح"؛ وإلا فستظهر رسالة خطأ تبيّن نوع المشكلة وموضعها (السطر والعمود) تماماً كما يبلغ عنه JSON.parse() — بحيث يمكنك الانتقال مباشرة إلى الحرف المسبب للمشكلة بدلاً من مسح الوثيقة كاملة.
ما الفرق بين التنسيق (Pretty Print) والضغط (Minify)؟
يضيف التنسيق (Beautify) مسافات بادئة وفواصل أسطر ليسهل على البشر قراءة البنى المتداخلة — مفيد أثناء العمل الفعلي على البيانات أو تتبع الأخطاء فيها. أما الضغط (Minify) فيزيل كل المسافات البيضاء غير الضرورية وينتج سطراً واحداً — أصغر حجماً للتخزين وأسرع في النقل، ومطابق تماماً للأصل من حيث المعنى. لا يغيّر أي منهما البيانات الأساسية، بل فقط عدد البايتات وفواصل الأسطر التي تمثّلها.
لماذا يرفض JSON علامات الاقتباس المفردة والفواصل الزائدة بينما تسمح بها جافاسكريبت؟
JSON هو مواصفة منفصلة وأكثر صرامة (RFC 8259)، وليس جافاسكريبت نفسها. تتساهل تعبيرات الكائنات في جافاسكريبت مع علامات الاقتباس المفردة والمفاتيح غير المُقتبَسة والفواصل الزائدة كتسهيل نحوي، لكن لا شيء من ذلك صالح في JSON — فأي استدعاء حقيقي لـ JSON.parse()، في أي لغة أو أي خادم خلفي، سيرفضه. هذه الصرامة مقصودة: فهي تُبقي JSON بسيطاً بما يكفي ليتمكن العشرات من اللغات من تحليله بالطريقة نفسها تماماً.
هل من الآمن لصق JSON حساس هنا؟
نعم. يتم التنسيق بالكامل داخل متصفحك عبر جافاسكريبت؛ بياناتك لا تُرسل أبداً إلى خادم ولا تُخزَّن في أي مكان، ولا يوجد أي طلب شبكة في خطوات التحقق أو التنسيق أو الضغط. إغلاق الصفحة يمحو البيانات تماماً، مما يجعل استخدام هذه الأداة آمناً حتى مع JSON يحتوي على مفاتيح API أو رموز مصادقة أو بيانات شخصية.
يبدو JSON الخاص بي سليماً لكنه لا يزال يفشل — لماذا؟
الأسباب الخفية الشائعة هي فاصلة زائدة على آخر خاصية، علامات اقتباس "ذكية" منحنية ملصوقة من معالج نصوص بدلاً من علامات اقتباس مزدوجة مستقيمة، علامة اقتباس مزدوجة غير مُهرَّبة داخل نص، أو فاصلة مفقودة بين خاصيتين. تحقق أولاً من السطر والعمود المُبلَّغ عنهما — فهما يشيران دائماً تقريباً إلى المشكلة الفعلية أو إلى ما قبلها مباشرة، وليس إلى مكان غير ذي صلة.
أدوات مشابهة
الإبلاغ عن مشكلة
منسّق JSON
التعليقات
لا توجد تعليقات بعد — كن أول من يكتب تعليقًا!