ما هو JSON؟
JSON (JavaScript Object Notation) صيغة نصية للبيانات المهيكلة تتكون من كائنات ومصفوفات ونصوص وأرقام وقيم منطقية وnull. يعرّفها المعياران RFC 8259 وECMA-404، وهي مستقلة عن لغة البرمجة، وتُعدّ الصيغة الافتراضية لواجهات الويب لأنها مضغوطة وقابلة للقراءة وسهلة التحليل.
كيفية استخدام مصغّر JSON
- الصق JSON المنسّق.
- تظهر النسخة المضغوطة فوراً مع مقدار التوفير.
- انسخها أو نزّلها كملف minified.json.
مزايا مصغّر JSON
- إزالة كل حرف مسافة بيضاء غير مهم
- عرض الحجم الأصلي والحجم بعد التصغير ونسبة التوفير
- التحقق من صحة الإدخال والإبلاغ عن أخطاء الصياغة مع رقم السطر والعمود
- تصغير فوري مع إمكانية النسخ والتنزيل
مثال على مصغّر JSON
ضغط ملف إعدادات
الإدخال:
{
"service": "inventory",
"replicas": 3,
"ports": [8080, 8443]
}النتيجة:
{"service":"inventory","replicas":3,"ports":[8080,8443]}الأسئلة الشائعة حول مصغّر JSON
هل يغيّر التصغير البيانات؟
لا. تُزال فقط المسافات البيضاء غير المهمة خارج السلاسل النصية. وتبقى القيم وترتيب المفاتيح ومحتويات السلاسل النصية كما هي تماماً.
كم من المساحة سأوفّر؟
عادةً ما بين 20 و40% للمستندات ذات المسافات البادئة. تعرض الأداة الحجم الأصلي والحجم بعد التصغير ونسبة التوفير.
هل يبقى JSON المصغّر صالحاً؟
نعم. المسافات البيضاء اختيارية في JSON، لذا فإن الناتج المضغوط متوافق تماماً مع المعيار ويمكن تحليله بأي مكتبة.
هل يمكنني تصغير JSON يحتوي على تعليقات؟
التعليقات ليست جزءاً من JSON، لذا يرفضها المحلّل. أزل التعليقات (أو استخدم أداة تدعم JSON5) قبل التصغير.
ملاحظات تقنية
التصغير هنا إعادة تسلسل وليس مجرد حذف للمسافات البيضاء: يُحلَّل النص بالدالة JSON.parse ثم يُكتب من جديد بالدالة JSON.stringify. البيانات بعد فك الترميز متطابقة، لكن البايتات قد تختلف عن المصدر — فتتحوّل التهريبات مثل \u00e9 و\/ إلى أحرفها الحرفية، وتصبح 1.0 هي 1، و1E2 هي 100، و-0 هي 0، ولا يُحتفظ من المفاتيح المكررة إلا بآخر قيمة، وتُقرَّب الأعداد الصحيحة التي تتجاوز 2^53 − 1 قبل كتابتها.
تُقاس الأحجام بالبايتات وفق UTF-8 بعدّاد صغير مكتوب يدوياً (من بايت واحد إلى أربعة لكل نقطة ترميز)، بينما يعرض التلميح «chars» طول UTF-16 الذي تُبلغ عنه الخاصية .length في JavaScript؛ ويتباين الرقمان مع النصوص العربية أو المشكولة أو الرموز التعبيرية. وتُقرَّب النسبة المئوية إلى منزلة عشرية واحدة، وتظهر ملاحظة عندما لا يكون الناتج أصغر من المدخل، ويرفض وقت التشغيل أي حقل يتجاوز 2 ميغابايت قبل تشغيل المحرك.
المراجع
- RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Formatقواعد JSON: الكائنات والمصفوفات والنصوص والأرقام والقيم الثلاث الثابتة، وUTF-8 كترميز للتبادل.
- ECMA-404: The JSON Data Interchange Syntaxصياغة JSON كمعيار من Ecma، متوافقة مع RFC 8259.
- Introducing JSONالوصف الأصلي المختصر لـ JSON مع مخططاته النحوية.