متن 🔒 در مرورگر اجرا می‌شود — داده‌ای ارسال نمی‌شود

فشرده‌سازی JSON

فاصله‌های اضافه JSON را حذف کنید و یک خط فشرده و معتبر بگیرید؛ فشرده‌سازی هم‌زمان با جای‌گذاری انجام می‌شود.

JSON ورودی

فشرده‌سازی آنلاین JSON

JSON فرمت‌شده برای خواندن آدم‌ها نوشته شده است؛ تورفتگی و شکست خط‌ها برای تجزیه‌گر هیچ معنایی ندارند. فشرده‌سازی (minify) آن‌ها را حذف می‌کند تا همان داده بایت کمتری بگیرد و در یک خط جا شود؛ چیزی که برای متغیرهای محیطی، آرگومان‌های خط فرمان، خط‌های لاگ و بدنه درخواست‌ها کاربردی است.

این صفحه فرمت‌کننده JSON را طوری باز می‌کند که به محض جای‌گذاری، سند را فشرده کند. سند ابتدا تجزیه می‌شود، پس همیشه فقط JSON معتبر کپی می‌کنید.

نمودار: یک شیء JSON یکسان، یک بار در یک خط (۳۵ بایت) و یک بار فرمت‌شده با تورفتگی دو فاصله (۶۱ بایت).فشرده: ۳۵ بایت{"id":7,"tags":["a","b"],"ok":true}فرمتفشرده‌سازیفرمت‌شده: ۶۱ بایت{"id": 7,"tags": ["a","b"],"ok": true}
فرمت کردن فقط فاصله اضافه می‌کند: خط جدید و تورفتگی. داده در هر دو نسخه دقیقاً یکی است؛ به همین دلیل فشرده‌سازی می‌تواند برای ارسال در شبکه دوباره آن فاصله‌ها را حذف کند، بدون اینکه معنای JSON عوض شود.

دقیقاً چه چیزی حذف می‌شود

  • فاصله‌ها و تب‌های تورفتگی.
  • شکست خط میان کلیدها و عضوهای آرایه.
  • فاصله پس از : و ,.
  • هیچ چیزی درون رشته‌های داخل کوتیشن: "New York" فاصله‌اش را حفظ می‌کند.

فشرده‌سازی کجا به کار می‌آید

موقعیتچرا یک خط کمک می‌کند
متغیرهای محیطی و ابزارهای مدیریت secretبسیاری از آن‌ها مقدار تک‌خطی انتظار دارند
curl و آرگومان‌های CLIنیازی به escape کردن شکست خط در shell نیست
لاگ‌های ساخت‌یافته (JSON Lines)قالبش یعنی هر رکورد در یک خط
ذخیره JSON در ستون پایگاه‌دادهبایت کمتر برای هر ردیف
فایل‌های JSON ایستا که وب‌سایت ارائه می‌دهددانلود کم‌حجم‌تر، حتی پیش از فشرده‌سازی

Minify در برابر gzip

برای JSONی که از طریق HTTP ارائه می‌شود، فشرده‌سازی HTTP بیشتر کار را انجام می‌دهد: gzip و Brotli در فشردن فاصله‌های تکراری بسیار خوب‌اند. minify همچنان کمی کمک می‌کند و هزینه‌ای ندارد، اما انتظار نداشته باشید متنی که ۴۰ درصد کوچک‌تر شده، پاسخی ۴۰ درصد سریع‌تر بدهد. جایی که minify به‌وضوح برنده است، هر جایی است که فشرده‌سازی اعمال نمی‌شود؛ مثل local storage، فیلدهای پایگاه‌داده و صف‌های پیام.

Minify در کد

  • JavaScript: JSON.stringify(JSON.parse(text))
  • Python: json.dumps(obj, separators=(',', ':'))
  • jq: jq -c . file.json
  • PHP: json_encode(json_decode($text))

اول باید خطای سینتکس را پیدا کنید؟ اعتبارسنجی JSON توضیح می‌دهد چه چیزی و کجا اشتباه است.

آموزش‌های مرتبط