أداة تنسيق JSON: ضغط وتجميل JSON مجانًا عبر الإنترنت
أداة مجانية لتنسيق JSON للضغط والتجميل الفوري. ضغط JSON، والتحقق من صحة بنيته، والطباعة الجميلة مع المسافات البادئة المناسبة. أداة سريعة وآمنة تعمل عبر المتصفح.
منسق JSON
التوثيق
مُنسّق JSON: تصغير JSON وتجميله
مُنسّق JSON هو أداة تعيد كتابة نص JSON بتخطيط مختلف من دون تغيير البيانات الموجودة فيه. ينفّذ مُنسّق JSON هذا أمرين: يصغّر JSON بإزالة المسافات البيضاء الزائدة، ويجمّل JSON بإضافة المسافات البادئة وفواصل الأسطر حتى يتمكن الناس من قراءته.
ما هو JSON؟
JSON، وهو اختصار لـ JavaScript Object Notation، هو تنسيق نصي لتخزين البيانات وإرسالها. تستخدم خوادم الويب هذا التنسيق لإرسال المعلومات إلى التطبيقات والمتصفحات. وتستخدمه البرامج في ملفات الإعدادات. يخزّن البيانات في صورة كائنات، تُكتب باستخدام الأقواس المعقوفة {}، ومصفوفات، تُكتب باستخدام الأقواس المربعة []. داخل الكائن، لكل جزء من البيانات اسم يُسمى مفتاحًا، وقيمة. ويمكن أن تكون القيمة سلسلة نصية أو رقمًا أو true أو false أو null أو كائنًا أو مصفوفة أخرى.
يبدو كائن JSON صغيرًا هكذا:
1{
2 "name": "John Doe",
3 "age": 30,
4 "isEmployee": true
5}
6كيف يعمل مُنسِّق JSON هذا؟
تقرأ بعض أدوات JSON النص في بنية بيانات خاصة بلغة برمجة، ثم تكتب تلك البنية مرة أخرى كنص. وقد تغيّر هذه العملية ذهابًا وإيابًا البيانات. فقد تعيد كتابة الأرقام الكبيرة جدًا، أو تحذف الأرقام الأكبر من أن تُمثَّل، أو تعيد ترتيب المفاتيح في الكائن.
تتجنب هذه الأداة ذلك. فهي تقرأ الإدخال حرفًا حرفًا وتتحقق من اتباعه قواعد JSON النحوية. وعند إعادة كتابة الناتج، تنسخ كل رقم وكل سلسلة نصية تمامًا كما كُتبت، وبالترتيب نفسه. لا يؤدي تصغير المستند أو تجميله إلى تغيير أي رقم أو مفتاح أو ترتيب للمفاتيح أو مفتاح مكرر.
إذا لم يكن النص JSON صالحًا، تتوقف الأداة وتعرض خطأً بدلًا من التخمين بما كان مقصودًا.
يحدث التنسيق في المتصفح. ولا ترسل الأداة النص الذي تم لصقه إلى أي خادم. يُضاف الإدخال إلى عنوان الويب للصفحة بوصفه معلمة استعلام، ولذلك يمكن مشاركة مستند منسّق أو حفظه في الإشارات المرجعية باستخدام رابط.
كيفية تصغير JSON
- الصق JSON في مربع الإدخال.
- انقر على "تصغير".
- تزيل الأداة المسافات وعلامات التبويب وفواصل الأسطر بين الرموز، وتعرض النتيجة أدناه.
- انقر على "نسخ" فوق النتيجة لنسخها.
مثال محلول
قبل:
1{
2 "name": "John Smith",
3 "age": 32,
4 "skills": [
5 "JavaScript",
6 "HTML",
7 "CSS"
8 ]
9}
10بعد:
1{"name":"John Smith","age":32,"skills":["JavaScript","HTML","CSS"]}
2معادلة تصغير JSON
يمكن كتابة المساحة التي تم توفيرها بالتصغير على النحو الآتي:
في المثال أعلاه، يبلغ حجم النسخة المنسّقة 98 بايت، وحجم النسخة المُصغَّرة 67 بايت:
يعتمد مقدار التوفير الدقيق على كمية الفراغات والمسافات البادئة الموجودة في المستند الأصلي. يكون انكماش المستند ذي التداخل العميق والمسافات البادئة بمقدار 4 من المسافات أكبر من انكماش مستند كان مضغوطًا أصلًا.
كيفية تجميل JSON
- الصق JSON في مربع الإدخال. ويمكن أن يكون مُصغَّرًا أصلًا أو منسّقًا بصورة غير مرتبة.
- انقر على "تجميل".
- تضيف الأداة مسافات بادئة مقدارها 2 من المسافات، وفاصل سطر واحدًا لكل مفتاح أو عنصر في المصفوفة، ومسافة بعد كل نقطتين.
- انقر على "نسخ" فوق النتيجة لنسخها.
مثال محلول
قبل:
1{"name":"John Smith","age":32,"skills":["JavaScript","HTML","CSS"]}
2بعد:
1{
2 "name": "John Smith",
3 "age": 32,
4 "skills": [
5 "JavaScript",
6 "HTML",
7 "CSS"
8 ]
9}
10يبقى الكائن أو المصفوفة الفارغان في سطر واحد، مثل {} أو []، بدلًا من تقسيمهما على ثلاثة أسطر.
أخطاء JSON الشائعة التي تكتشفها هذه الأداة
لدى JSON قواعد نحوية صارمة، وهي أكثر صرامة من قواعد لغة البرمجة المعتادة. ترفض هذه الأداة النص الذي يخالف أيًا من القواعد التالية، وتعرض رسالة "JSON غير صالح" بدلًا من النتيجة:
- فاصلة مفقودة بين قيمتين.
- فاصلة زائدة بعد العنصر الأخير في كائن أو مصفوفة، وهي غير مسموح بها في JSON بخلاف JavaScript.
- مفتاح غير موضوع بين علامتي اقتباس مزدوجتين.
- استخدام علامتي اقتباس مفردتين حول سلسلة نصية بدلًا من علامتي اقتباس مزدوجتين.
- أقواس مربعة أو معقوفة غير متطابقة أو مفقودة.
- تسلسل هروب غير صالح أو غير مكتمل داخل سلسلة نصية، مثل شرطة مائلة عكسية منفردة.
- محرف تحكم، مثل فاصل سطر أو علامة جدولة فعلية، مكتوب داخل سلسلة نصية بدلًا من كتابته على صورة
\nأو\t. - رقم بصيغة لا يسمح بها JSON، مثل الصفر البادئ (
01)، أو النقطة العشرية اللاحقة (1.)، أو علامة الجمع البادئة (+1).
لا يحتوي JSON أيضًا على صيغة للتعليقات. فالنص الذي يبدأ بـ // أو /* ليس جزءًا من قواعد JSON النحوية، ولذلك يؤدي لصق JSON الذي يحتوي على تعليقات إلى ظهور خطأ "JSON غير صالح"، بدلًا من الحصول على JSON أزيلت تعليقاته بهدوء. ولتنسيق مثل هذا الملف، أزل التعليقات أولًا.
حالات استخدام مُنسّق JSON
- تطوير الويب: قراءة استجابات API أثناء تصحيح الأخطاء، وتصغير ملفات الإعدادات قبل النشر.
- تطوير API: التحقق من أن نص جسم الطلب أو الاستجابة هو JSON سليم البنية.
- تحليل البيانات: تحويل تصدير JSON مضغوط إلى تخطيط قابل للقراءة لفحصه.
- ملفات الإعدادات: تجميل ملف إعدادات قبل تحريره يدويًا، ثم تصغيره مرة أخرى بعد ذلك.
البدائل
يمكن لمحررات التعليمات البرمجية مثل Visual Studio Code تنسيق ملفات JSON من دون مغادرة المحرر. ويمكن لأدوات سطر الأوامر مثل jq تنسيق JSON وتصفيته ضمن برنامج نصي. كما توفر لغات البرمجة مكتبات JSON، مثل الوحدة json في Python أو الكائن المدمج JSON في JavaScript، وتستخدمه معظم البرامج لتحليل JSON وتحويله إلى هياكل البيانات الخاصة بها. ويكون مُنسّق عبر الإنترنت مثل هذا مفيدًا عند الحاجة إلى فحص سريع لمرة واحدة من دون تثبيت أي شيء.
تاريخ JSON
حدّد دوغلاس كروكفورد مواصفات JSON في أوائل عقد الألفين (الذي بدأ عام 2000)، استنادًا إلى طريقة JavaScript في كتابة الكائنات الحرفية، لكنه صممه بحيث يمكن لأي لغة برمجة قراءته وكتابته. وُثّق التنسيق علنًا للمرة الأولى نحو عام 2001، ثم وُحّد لاحقًا في RFC 4627 في (11,800 سم) 2006، وفي ECMA-404 في (1,030 سم) 2013، وفي RFC 8259 في (21,000 سم) 2017. ومع نمو واجهات API على الويب خلال عقد 2000، حل JSON محل XML بوصفه التنسيق الأكثر شيوعًا لإرسال البيانات بين الخوادم والمتصفحات، ويرجع ذلك أساسًا إلى قِصره وإلى مطابقته المباشرة لهياكل البيانات الموجودة أصلًا في JavaScript. وظهرت أدوات التنسيق والتحقق مع ازدياد مستندات JSON حجمًا وتداخلًا.
الأسئلة الشائعة
هل تؤدي عملية تصغير JSON إلى إزالة التعليقات؟
لا. لا يحتوي JSON على صيغة للتعليقات، وهذه الأداة لا تضيفها. إذا احتوى الإدخال على تعليقات من نمط // أو /*، تعرض الأداة خطأ "JSON غير صالح" بدلًا من تنسيقه. أزل التعليقات قبل لصق النص.
هل يغيّر التنسيق أرقامي أو ترتيب مفاتيحي؟ لا. تنسخ الأداة كل رقم وكل سلسلة نصية تمامًا كما كُتبت، وتحافظ على المفاتيح بترتيبها الأصلي، بما في ذلك المفاتيح المكررة إن وُجدت.
ما مقدار المسافة البادئة التي يستخدمها مُجمِّل JSON؟ مسافتان لكل مستوى من مستويات التداخل، مع مسافة بعد كل نقطتين.
هل تُرسل بيانات JSON الخاصة بي إلى خادم؟
لا. يجري التنسيق في المتصفح. يُنسخ النص الذي تلصقه إلى عنوان URL للصفحة بوصفه معلمة استعلام json، بحيث يمكن مشاركة الصفحة أو حفظها في الإشارات المرجعية. ولا يُرفع أي شيء.
هل يوجد حد للحجم؟ لا يوجد حد ثابت، لكن يُحتفظ بالمستند بأكمله في الذاكرة أثناء تحليله، ولذلك قد يكون الملف الكبير جدًا، أي الذي يبلغ حجمه عدة ميغابايت، بطيئًا على جهاز قديم.
هل سيُصلح JSON غير الصالح جزئيًا فحسب؟ لا. إذا خالف الإدخال قواعد JSON النحوية في أي موضع، تعرض الأداة خطأ بدلًا من إرجاع نتيجة جزئية أو مبنية على التخمين.
المراجع
- "Introducing JSON." JSON.org، https://www.json.org/json-en.html.
- Bray، T.، محرر. "The JavaScript Object Notation (JSON) Data Interchange Format." RFC 8259، IETF، ديسمبر 2017، https://www.rfc-editor.org/rfc/rfc8259.
- "ECMA-404: The JSON Data Interchange Syntax." Ecma International، https://www.ecma-international.org/publications-and-standards/standards/ecma-404/.
- "JSON." مستندات MDN على الويب، Mozilla، https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON.