Format, Validasi, dan Minify JSON
Format, validasi, atau minify JSON seketika di browser Anda — hasilnya diperbarui langsung saat Anda mengetik.
Teks Anda tetap di perangkat
Tidak ada yang perlu dihapus kemudian
Aman untuk respons yang hidup
Jalan di semua browser modern
Cara kerjanya
- 1
Tempel JSON Anda
Masukkan sebuah respons, berkas konfigurasi, atau apa pun yang diserahkan kepada Anda.
- 2
Baca hasilnya atau galatnya
Masukan yang sah kembali berindentasi; yang tak sah memberi tahu posisi tempat ia berhenti.
- 3
Salin yang Anda perlukan
Bawa versi terbacanya ke sebuah tinjauan, atau versi terminifikasinya ke sebuah permintaan.
Mengapa memakai alat ini
Galatnya memberi tahu di mana
Dokumen yang tak sah melaporkan posisi kegagalannya, jadi Anda memperbaiki satu baris alih-alih membaca ulang seluruh muatan.
Mempercantik dan meminifikasi dua arah
Berikan indentasi untuk membacanya, kupas untuk mengirimnya — data yang sama dalam bentuk yang dibutuhkan saat itu.
Bilangan bulat besar tetap utuh
Pengenal di luar rentang aman bilangan bulat JavaScript tidak dibulatkan diam-diam di tengah jalan.
Urutan kunci dipertahankan
Pemformatan mengubah spasi, bukan struktur, jadi muatan yang ditandatangani atau dibandingkan per bita tetap selamat.
Tidak ada yang diunggah
Teksnya diurai di browser Anda — respons API yang membawa token tak pernah keluar dari tab.
Gratis tanpa akun
Tanpa pendaftaran, tanpa watermark, dan tanpa batas seberapa banyak yang Anda format.
Anda datang ke sini bukan demi indentasinya
Orang berkata “formatkan JSON ini” dan memaksudkan hal lain. Indentasinya memang enak dilihat, tetapi alasan Anda menempelkannya adalah karena sesuatu di hilir menolaknya, atau tak mengembalikan apa-apa, atau menghasilkan nilai yang tak Anda duga, dan Anda perlu tahu apakah dokumennya bahkan sah sebelum melihat ke tempat lain mana pun. Itulah yang sesungguhnya dijawab sebuah pemformat. Masukan yang sah kembali berindentasi, dan indentasi itulah konfirmasi Anda. Masukan yang tak sah kembali dengan sebuah posisi, dan posisi itulah produk yang sesungguhnya. Segala yang lain — jarak, pohon yang bisa dilipat, warna — ada untuk membantu Anda membaca dokumen yang sudah Anda pastikan layak dibaca.
Galatnya hampir tak pernah berada di tempat yang disebutkan pesannya
Sebuah pengurai melaporkan karakter pertama yang tak bisa ia pahami, dan itu biasanya sedikit setelah kesalahannya, bukan tepat padanya. Lupakan sebuah koma di antara dua objek dan pengurainya membaca dengan senang hati sampai kurung kurawal pembuka objek berikutnya, lalu melaporkan token tak terduga di sana — menunjuk sebuah baris yang sempurna benar. Tinggalkan koma di ujung dan ia melaporkan kurung penutup yang mengikutinya. Lupakan sebuah kurung penutup dan ia melaporkan ujung paling akhir dokumennya, yang nyaris tak memberi tahu Anda apa pun. Kebiasaan yang layak dibangun adalah membaca posisi yang dilaporkan sebagai batas alih-alih sasaran: masalahnya ada di sana atau sebelumnya, dan token yang disebut dalam pesan itu adalah saksi tak bersalah yang membuat pengurainya menyerah. Lihat apa yang persis mendahuluinya.
Empat hal yang sah di JavaScript dan tak sah di JSON
Inilah sumber tunggal terbesar dari “tapi kelihatannya benar bagi saya”. JSON adalah bahasa yang jauh lebih kecil daripada literal objek JavaScript yang ia mirip dengannya, dan empat kebiasaan sehari-hari menghasilkan dokumen yang diterima konsol browser dan ditolak pengurai. Koma di ujung adalah yang paling umum — `{"a": 1,}` tak masalah di JavaScript modern dan tak sah di JSON. Tanda kutip tunggal di urutan kedua: kunci dan string harus memakai tanda kutip ganda, selalu. Kunci tanpa tanda kutip ketiga, jadi `{name: "x"}` gagal di tempat `{"name": "x"}` berhasil. Dan komentar keempat — JSON tak punya, jadi sebaris `//` yang menjelaskan sebuah nilai konfigurasi membatalkan seluruh berkasnya. Kalau sebuah dokumen ditulis dengan tangan atau disalin dari kode, periksa keempat hal itu sebelum apa pun, karena bersama-sama mereka menjelaskan sebagian besar JSON tak sah yang orang tempel.
Bilangan besar adalah tempat perjalanan bolak-balik kehilangan data
Inilah yang halus dan ia memakan waktu nyata orang. JSON punya satu tipe bilangan dan tanpa batas presisi yang dinyatakan, tetapi apa pun yang mengurai JSON di JavaScript menyimpan bilangan itu sebagai double, yang mewakili bilangan bulat secara persis hanya sampai sekitar sembilan kuadriliun — 2^53. Di luar itu, digit hilang. Alasan hal ini penting adalah banyak sistem mencetak pengenal persis di rentang itu: ID snowflake dari platform obrolan, sebagian urutan basis data, dan cap waktu dalam nanodetik semuanya menghasilkan bilangan bulat 18 dan 19 digit. Uraikan lalu pancarkan ulang dokumen semacam itu secara naif dan digit terakhirnya berubah, diam-diam, dalam sebuah nilai yang masih tampak seperti ID yang masuk akal. Kalau muatan Anda membawa pengenal numerik panjang, perlakukan sebagai string dari ujung ke ujung, dan jangan percayai alat mana pun yang memutarnya lewat bilangan JavaScript tanpa mengatakannya.
Mempercantik dan meminifikasi menjawab pertanyaan berbeda
Keduanya menghasilkan data yang sama dan berguna pada saat yang berlawanan. JSON yang dipercantik untuk manusia: meninjau respons API, memeriksa konfigurasi, atau — yang paling berguna — membandingkan dua versi, karena format satu nilai per barislah yang membuat sebuah diff terbaca sama sekali. JSON terminifikasi untuk kabel dan mesin: ia mengupas tiap bita yang tak membawa makna, dan itu penting di badan permintaan, entri cache, atau di mana pun ukuran muatan dihitung. Kesalahan yang layak dihindari adalah membandingkan dokumen terminifikasi. Dua berkas terminifikasi yang berbeda satu nilai berbeda pada satu barisnya yang raksasa, dan tiap alat diff akan melaporkan keseluruhannya berubah. Percantik keduanya lebih dulu, lalu bandingkan, dan diff-nya menunjukkan satu bidang yang benar-benar bergeser.
Kenapa memformat secara lokal penting untuk jenis teks ini
JSON yang orang tempel ke pemformat hampir selalu hidup: respons API yang ditangkap saat menelusuri galat, badan webhook, berkas konfigurasi, muatan token. Itu berarti ia membawa hal-hal yang dibawa data hidup — token bearer di gema sebuah header, pengenal sesi, alamat internal, surel pelanggan, dan sesekali kredensial di sebuah blok konfigurasi. Menempelkan itu ke pemformat yang dihosting mengirim tiap bitanya ke server orang lain, dan tak seperti berkas yang bisa Anda tunjuk, teks yang ditempel tak meninggalkan jejak bahwa Anda melakukannya. Alat ini mengurai di halaman: tak ada yang dikirimkan, dan itu bisa Anda pastikan di tab Network pada developer tools. Untuk teks yang sesering ini sensitif dan sesantai ini ditempel, itulah perbedaan yang layak dimiliki secara bawaan.
Kesalahan umum yang sebaiknya dihindari
- Memercayai posisi galat yang dilaporkan. Pengurai menyebut token pertama yang tak bisa ia tangani, dan itu biasanya persis setelah kesalahan sesungguhnya — baca posisinya sebagai batas lalu lihat apa yang persis mendahuluinya.
- Menulis JSON dengan kebiasaan JavaScript. Koma di ujung, tanda kutip tunggal, kunci tanpa tanda kutip, dan komentar `//` semuanya sah di JavaScript dan tak sah di JSON; periksa keempatnya sebelum apa pun.
- Memutar-balikkan ID numerik panjang. Apa pun di atas sekitar sembilan kuadriliun kehilangan digit terakhirnya ketika diurai sebagai bilangan JavaScript, dan hasilnya masih tampak seperti pengenal yang masuk akal — bawa sebagai string.
- Membandingkan JSON terminifikasi. Kedua berkasnya berupa satu baris raksasa, jadi tiap alat diff melaporkan seluruh dokumennya berubah; percantik keduanya lebih dulu dan diff-nya akan menunjukkan satu bidang yang bergeser.
- Menempelkan respons API yang hidup ke pemformat yang dihosting. Muatan semacam itu rutin membawa token, pengenal sesi, dan alamat pelanggan; formatlah secara lokal.
Perbandingan
| Aspek | Alat ini | Pemformat daring | Pengaya editor |
|---|---|---|---|
| Konten dikirim ke server | Tidak pernah | Umumnya ya | Tidak |
| Perlu penyiapan | Tidak ada | Tidak ada | Pasang dan konfigurasikan |
| Galat berposisi akurat | Ya | Beragam | Ya |
| Jalan tanpa membuka proyek | Ya | Ya | Umumnya tidak |
| Akun atau pendaftaran | Tidak perlu | Sering diminta | Tidak perlu |
| Harga | Gratis | Gratis / paket berbayar | Gratis / berbayar |
Fitur
Validasi saat ditempel
Anda tahu apakah ia terurai sebelum melakukan apa pun yang lain dengannya.
Galat berposisi akurat
Kegagalannya melaporkan di mana pengurainya berhenti, bukan sekadar bahwa ada yang salah.
Indentasi bisa diatur
Dua spasi, empat, atau tab, menyesuaikan ke mana pun berkasnya akan kembali.
Minifikasi satu langkah
Spasi dikupas agar data yang sama menempati muatan sekecil mungkin.
Unicode dipertahankan
Konten Arab, Turki, beraksen, dan emoji lewat tanpa berubah.
Mampu menangani dokumen besar
Muatan berukuran beberapa megabita terformat tanpa unggahan maupun antrean.
Tanpa instalasi
Tanpa pengaya editor, tanpa runtime, tanpa dependensi — jalan di halaman web.
Ramah Arab dan RTL
Antarmuka lengkap dalam delapan bahasa, termasuk Arab kanan-ke-kiri.
Aman secara bawaan
Disajikan lewat HTTPS, tanpa pelacakan konten dan tanpa unggahan ke pihak ketiga.
Siapa yang memakainya
Pengembang
Mencari tahu di mana sebuah respons patah tanpa lebih dulu menjatuhkannya ke berkas coretan.
Integrator API
Membaca muatan dari endpoint mitra sebelum menulis apa pun terhadapnya.
Insinyur QA
Membandingkan dua respons bidang demi bidang setelah mempercantik keduanya.
Insinyur dukungan
Membuat konfigurasi kiriman pelanggan cukup terbaca untuk melihat apa yang salah padanya.
Pertanyaan yang Sering Diajukan
Tidak. Semuanya berjalan lokal di browser Anda — teks Anda tidak pernah diunggah, disimpan, atau dibagikan.
Ya — sepenuhnya gratis, tanpa akun dan tanpa batas.