Minifier JSON

Lampirkan dokumen JSON yang telah dicetak dengan tampilan menarik, lalu dapatkan versi satu baris yang semua byte tidak perlu dihilangkan: ruang antar token, baris baru, spasi akhir, serta komentar JSONC. Hasil keluarannya memiliki jumlah byte yang setara dengan pengkodean terpendek dari data yang sama, siap untuk disematkan dalam <script>, parameter URL, atau payload yang dibayar per byte.

Cara meminimalkan ukuran JSON

  1. 1

    Lampirkan JSON

    Telah dicetak dengan format standar atau sebagian telah diminifikasi. Data masukan diproses dan diserialisasi ulang.

  2. 2

    Kurangi ukuran (minimize)

    Seluruh ruang kosong di antara token dihapus; komentar dihilangkan; angka dipertahankan seperti semula.

  3. 3

    Lihat perbedaan ukuran

    Jumlah byte sebelum dan sesudah serta persentase penurunan.

  4. 4

    Salin hasil keluaran

    JSON satu baris yang siap dicantumkan ke dalam berkas kode atau permintaan API.

Apa yang dihapus

  • Ruang kosong di antara token: spasi, tab, dan baris baru.
  • Komentar (dalam format JSONC, yaitu // dan /* */), dihilangkan karena format JSON yang ketat melarang penggunaan komentar tersebut.
  • BOM dan ruang kosong di awal dokumen.

Apa yang tidak dihapus

  • Nilai: setiap string, angka, nilai boolean, dan null dipertahankan secara persis.
  • Format angka: setiap angka dipertahankan persis seperti yang ditulis: 1.50 tetap 1.50 dan 1e-3 tetap 1e-3. Alat ini mempertahankan tingkat presisi yang Anda masukkan.
  • Urutan kunci: objek tetap mempertahankan urutan penyisipan aslinya.

Mengapa perlu meminifikasi JSON

Beban data yang lebih kecil: konfigurasi berukuran 120 KB dengan tampilan yang rapi dapat dikurangi menjadi hanya 70 KB; hal ini sangat penting untuk setiap permintaan.

  • embedding inline: ketika Anda menempatkan kode JSON ke dalam tag <script> atau parameter URL, ruang kosong akan menyebabkan pemborosan bandwidth.
  • Stabilitas hash: dua dokumen JSON yang secara semantik setara namun memiliki nilai hash berbeda akibat perbedaan ruang kosong. Proses minimisasi terlebih dahulu menghasilkan nilai hash yang konsisten (meskipun kanonialisasi sebenarnya juga menyortir nilai-nilai kunci).

Referensi penghematan byte

Masukan Berformat (2 spasi) Terminifikasi Penghematan
Konfigurasi kecil (50 kunci) 1,8 KB 1,1 KB 39%
Respons API (5 KB bersarang) 6,2 KB 4,1 KB 34%
Penyimpanan data besar 1,2 MB 0,8 MB 33%

Setelah menggunakan gzip, perbedaan ukuran file berkurang secara signifikan, karena gzip sudah mampu mengompresi ruang kosong dengan efisien. Gunakan minifikasi untuk kasus data mentah (URL, konten yang disisipkan inline); sementara untuk transmisi data melalui jaringan, andalkan gzip saja.

Kapan Tidak Harus Meminifikasi

  • File konfigurasi yang disimpan dalam sistem kontrol versi, kejelasan lebih diutamakan daripada jumlah byte. – File yang diedit oleh manusia – Tidak ada orang yang mengedit file JSON yang telah diminifikasi secara manual tanpa menyesalinya. – Artefak debugging: File JSON berukuran 400 KB yang hanya terdiri dari satu baris dalam log crash tidak dapat dibaca.

Kesalahan Umum

  • Mengurangi ukuran JSON yang bergantung pada komentar: Komentar akan dihapus, dan perilaku parser dapat berubah jika terdapat penanda TODO.
  • Mengurangi ukuran bilangan desimal terapung. Beberapa alat melakukan serialisasi ulang 0.1 secara berbeda dari format masukan; alat ini mempertahankan representasi berupa string secara tepat.
  • Gunakan minifikasi sebagai metode kompresi. Gzip menghemat lebih banyak byte dibandingkan minifikasi untuk teks. Gabungkan keduanya; jangan menggantinya.

Pertanyaan yang Sering Diajukan

Biasanya ukurannya 30–40% lebih kecil untuk data yang telah diproses dengan format cetak menarik. Penghematan tersebut hampir seluruhnya berasal dari ruang kosong; data aktualnya tidak berubah. Setelah proses gzip, perbedaan antara versi yang telah diminifikasi dan versi dengan format cetak menarik umumnya kurang dari 5%, karena gzip mengolah ruang kosong secara efisien.

Alat ini mempertahankan bentuk string angka secara tepat: 1.50 tetap menjadi 1.50, dan 1e-3 tetap menjadi 1e-3. Beberapa alat pemangkas (minifier) melakukan normalisasi; yang ini secara default bersifat konservatif sehingga Anda tidak akan mengalami kehilangan presisi yang tidak diinginkan.

Tidak. Proses minimisasi sepenuhnya dijalankan langsung di peramban Anda. Data JSON yang ditampal tidak meninggalkan mesin Anda, sangat aman untuk respons API yang mengandung token atau konfigurasi pribadi.

Ya, komentar diperbolehkan pada data masukan dan dihilangkan dari hasil keluaran (JSON yang ketat tidak mengizinkannya). Jika Anda perlu mempertahankan komentar tersebut, simpanlah kode sumber JSONC dalam format yang mudah dibaca, dan lakukan minimisasi hanya saat proses penyebaran.

Alat Terkait

Alat ini tersedia dalam bahasa lain