فهرست

جست‌وجوی ابزارهاگزارش تغییرات

برای جابه‌جایی برای باز کردنمسئله را توضیح دهید، نه نام ابزار را

فشرده‌سازی JSON بدون تغییر اعداد بزرگ

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

یک سند JSON با کدگذاری UTF-۸ تا ۲۵ مگابایت. بایت‌های آن در همین تب مرورگر می‌مانند.

هر دو گزینه ترتیب کلیدها، کلیدهای تکراری، escape های رشته‌ها و شکل نوشتاری دقیق هر عدد JSON را حفظ می‌کنند.

فقط برای خروجی خوانا استفاده می‌شود. خروجی فشرده‌شده هیچ تورفتگی‌ای ندارد.

بایت‌های خروجی
طول دقیق بایتی فایل JSON قابل دانلود با کدگذاری UTF-۸.
بایت‌های ورودی
عمیق‌ترین سطح تودرتویی
نوشته‌شده به‌صورت

نتیجه‌ها بدون تضمین درستی ارائه می‌شوند. روش و منابع در پایین صفحه منتشر شده‌اند تا بتوانید محاسبه را بررسی کنید.

نکات اصلی
  1. فاصله‌ها، تب‌ها و شکست خط‌های درون رشته‌های نقل‌قول‌شده داده‌اند و هرگز حذف نمی‌شوند.

  2. مقداری مانند ۹۰۰۷۱۹۹۲۵۴۷۴۰۹۹۳ دقیقاً به همین شکل نوشته می‌شود.

  3. نتیجهٔ فشرده‌شده یک فایل محلی جدید است؛ فایل اصلی تغییر نمی‌کند.

چگونگی کار

مراحل انجام کار

  1. فایل را به‌صورت UTF-۸ سخت‌گیرانه بخوانید. یک نشانهٔ ترتیب بایت UTF-۸ در ابتدای فایل را برای سازگاری بپذیرید و مصرف کنید، اما آن را در نتیجه ننویسید.
  2. پیش از تولید فایل خروجی، سند کامل را به‌عنوان یک مقدار JSON مطابق RFC ۸۲۵۹ اعتبارسنجی کنید. فایل خالی، UTF-۸ نامعتبر، محتوای اضافی در انتها یا اشیا، آرایه‌ها، رشته‌ها، اعداد و نام‌های لفظی بدشکل را رد کنید.
  3. منبع اعتبارسنجی‌شده را اسکن کنید و در این حین رشته‌های نقل‌قول‌شده و escape های بک‌اسلش را دنبال کنید. درون رشته هر واحد کد را دقیقاً کپی کنید؛ بیرون رشته فقط فاصله، تب، بازگشت نورد (CR) و خط‌نو (LF) را کنار بگذارید.
  4. برای خروجی خوانا، تورفتگی انتخاب‌شده را پس از باز شدن هر شیء یا آرایه و پس از هر کاما، یک فاصله پس از دونقطه، و یک خط با تورفتگی درست پیش از بسته شدن هر شیء یا آرایهٔ غیرخالی درج کنید. برای خروجی فشرده‌شده هیچ فضای خالی اختیاری‌ای درج نکنید.
  5. متن بازنویسی‌شده را به‌صورت UTF-۸ کدگذاری کنید، فقط در صورت انتخاب یک خط‌نوی پایانی اضافه کنید و یک فایل .json جدید ارائه دهید. هرگز توکن‌های عددی را برای خروجی به مقادیر ممیز شناور تبدیل نکنید.

فرض‌ها

  • قالب‌بندی همان متعارف‌سازی نیست. ترتیب اعضای شیء، نام‌های تکراری، شکل نوشتاری اعداد و انتخاب escape های رشته‌ها همان‌طور که نویسنده نوشته می‌مانند، حتی جایی که تجزیه‌گر دیگری ممکن است آن‌ها را نرمال یا ادغام کند.
  • JSON که میان سامانه‌های مستقل مبادله می‌شود، طبق RFC ۸۲۵۹ با کدگذاری UTF-۸ است. UTF-۱۶ و صفحه‌کدهای قدیمی پیش از اعمال این دستور زبان، به مبدل جداگانهٔ کدگذاری متن تعلق دارند.
  • تجزیه‌گر بومی JSON فقط به‌عنوان اعتبارسنج سخت‌گیر دستور زبان استفاده می‌شود. بایت‌های قابل دانلود از یک اسکن توکن‌نگه‌دار روی متن اصلی می‌آیند، نه از JSON.stringify.
  • سقف ورودی ۲۵ مگابایت است. بازنویسی هر ۲۵۰٬۰۰۰ نویسه کنترل را واگذار می‌کند تا پیشرفت و لغو پاسخ‌گو بمانند؛ خود اعتبارسنجی بومی عمداً به تجزیه‌گر بهینه‌شدهٔ مرورگر سپرده شده است.

پرسش‌های رایج

آیا فشرده‌ساز فاصله‌های درون یک رشتهٔ JSON را حذف می‌کند؟

خیر. رشته‌های نقل‌قول‌شده و دنباله‌های escape را دنبال می‌کند و فضای خالی را فقط وقتی بیرون از رشته باشد حذف می‌کند.

چرا پیش از حذف فضای خالی اعتبارسنجی می‌شود؟

در غیر این صورت یک بازنویسی بایت‌به‌بایت می‌تواند فایل کوچک‌تری تولید کند که همچنان نامعتبر است. اعتبارسنجی تضمین می‌کند که کل منبع، پیش از ارائهٔ هر چیزی برای دانلود، یک مقدار JSON با رشته‌ها، اعداد، آرایه‌ها و اشیای درست است.

منابع

روش کامل، مثال محاسبه‌شده و همهٔ فرض‌های این نتیجه در این صفحه آمده است: قالب‌بند JSON.