مصغّر JSON
أزل الفراغ من JSON وانظر كم تصغر الحمولة بالضبط.
تتم المعالجة على جهازك — بلا رفع
كيف تصغّر JSON
- الصق JSON المنسَّق.
- اقرأ الحجمين قبل وبعد.
- انسخ الناتج المصغَّر.
كيف يعمل
التصغير تحليل يتبعه إعادة تسلسل بلا إزاحة. ويبدو ذلك طريقًا ملتويًا لإزالة المسافات، والبديل هو سبب فعله هكذا.
ونزع الفراغ بمطابقة نمط يُفسد البيانات. فالتعبير النمطي الذي يزيل المسافات لا يميّز المسافة في { "a": 1 } عن المسافة في {"name": "Sara Haddad"}. أما التحليل فيزيل النوع الأول ولا يستطيع مسّ الثاني، لأن السلسلة عندئذ قيمة لا نصّ.
ويعني ذلك أيضًا أن JSON غير الصالح يُرفض بدل أن يُشوَّه في صمت. فالمصغّر الذي يعمل بمطابقة الأنماط سينتج مخرجات من ملف مكسور براحة بال، ولا يظهر الكسر إلا لاحقًا.
والتوفير عادةً بين 15% و30% في JSON المُزاح، وهو أقلّ ممّا يتوقّعه الناس — لأنه على الشبكة يتبعه ضغط gzip أو brotli، وهما بارعان جدًّا في إزالة الفراغ المتكرّر أصلًا.
مثال عملي
تضمّن كائن إعداد في صفحة وتريده أصغر ما يمكن. اضغط حمّل عيّنة: 340 بايت منسَّقًا، و232 مصغَّرًا، أي توفير نحو 32%.
والآن التحفّظ الذي يستحق المعرفة قبل التحسين لأجله. فحين يُقدَّم عبر HTTP مع gzip، يُضغط الملف نفسه إلى الحجم نفسه تقريبًا سواء صُغِّر أم لا — فتتابعات المسافات المتكرّرة هي بالضبط ما تزيله خوارزميات الضغط أولًا. وتصغير JSON الذي سيُضغط بـgzip يوفّر حفنة بايتات لا ثلثًا.
وحيث ينفع فعلًا: JSON مضمَّن في سمة HTML أو في عنوان بيانات، أو مخزَّن في عمود قاعدة بيانات، أو مرسَل عبر اتّصال بلا ضغط، أو محفوظ في localStorage، الذي له حدّ حجم صارم يُقاس بالسلسلة الخام.
ونقطة الأمان عمليًا. الصق {"greeting": "hello world"} بثلاث مسافات داخل السلسلة. تبقى في المخرجات المصغَّرة ثلاث مسافات. فهي بيانات. أما المصغّر القائم على التعابير النمطية فكان سيطويها ويغيّر القيمة.
وللاتجاه الآخر، المنسّق يوسّعه من جديد ويبلّغ عن موضع أي خطأ صياغي بالضبط.
أسئلة
كيف أجعل JSON مضغوطًا لواجهة برمجية؟
التصغير ينزع كل مسافة وسطر جديد يتجاهلهما المحلّل. ويستحق الفعل لحمولة مضمَّنة في صفحة أو مخزَّنة في عمود حيث الحجم الخام هو المهمّ.
هل يُرفع JSON عندي؟
لا. يُحلَّل ويُعاد تسلسله في متصفّحك، فتبقى الحمولات التي فيها رموز أو بيانات شخصية على جهازك.
هل يغيّر التصغير بياناتي؟
لا. يُزال الفراغ بين الرموز؛ ويُحفظ الفراغ داخل قيم السلاسل، لأن الملف يُحلَّل لا تُطابَق أنماطه.
كم سيصغر؟
عادةً بين 15% و30% في JSON المُزاح. والملفات العميقة التداخل ذات القيم القصيرة توفّر أكثر، لأن الإزاحة حصّة أكبر من المجموع.
هل يستحق التصغير إن كان خادمي يستعمل gzip؟
بالكاد. فالضغط يزيل الفراغ المتكرّر إزالةً فعّالة جدًّا، فتتقارب الأحجام المضغوطة. صغّر لأجل JSON المضمَّن وأعمدة قواعد البيانات وlocalStorage، حيث الحجم الخام هو المهمّ.
هل أصغّر JSON غير صالح؟
لا، عمدًا. فالملف يُحلَّل أولًا، فيُبلَّغ عن الملف المكسور بدل أن يتحوّل إلى ملف مكسور أصغر.
هل يزيل التعليقات؟
التعليقات ليست JSON صالحًا، فالملف الذي يحويها لن يُحلَّل إطلاقًا. انزعها قبل التصغير.
هل يتغيّر ترتيب المفاتيح؟
لا. تبقى المفاتيح بالترتيب الذي ظهرت به.
هل هناك حدّ للحجم؟
لا حدّ ثابت، وإن كانت الملفات الضخمة جدًّا تجعل صناديق النص نفسها بطيئة التمرير.
هل مصغّر JSON مجاني على الإنترنت؟
نعم — مجاني، بلا حساب، وبلا حد يومي، وبلا علامة مائية. يعمل في متصفّحك عبر الإنترنت، ولأن المعالجة تجري على جهازك فإنه يستمر في العمل دون اتصال بعد تحميل الصفحة.
أدوات Data ذات صلة
منظّف CSV
احذف المسافات الشاردة، وأسقط الصفوف الفارغة والمكرّرة، وجد الصفوف التي عدد أعمدتها خاطئ.
افتح$termiva csv merge *.csvدمج ملفات CSV
اجمع عدة ملفات CSV في واحد، بمطابقة الأعمدة بأسمائها حتى لو اختلف ترتيبها.
افتح$termiva csv split --rows 1000تقسيم CSV
قسّم ملف CSV كبيرًا إلى ملفات أصغر بعدد صفوف تختاره، مع تكرار الترويسة في كل واحد.
افتح$termiva md2html README.mdMarkdown إلى HTML
حوّل Markdown إلى HTML مع معاينة حيّة، جاهزًا للّصق في صفحة أو بريد.
افتح