T

Text Machine

Alat teks andal, di browser Anda

Pemformat JSON

Rapikan, validasi, dan kecilkan JSON di browser Anda. Tempel data Anda, pilih gaya indentasi, dan dapatkan hasil yang bersih dan mudah dibaca secara instan — tidak ada yang diunggah.

JSON Masukan

0 baris · 0 karakter

Indentasi

Cara menggunakan Pemformat JSON

  1. 1

    Tempel JSON Anda

    Tempel JSON yang diperkecil, berantakan, atau sudah terindentasi ke dalam panel input.

  2. 2

    Pilih indentasi

    Pilih 2 spasi, 4 spasi, atau tab untuk mengontrol bagaimana output yang dirapikan diindentasi.

  3. 3

    Format atau perkecil

    Klik 'Format' untuk mencetak rapi dan memvalidasi JSON, atau 'Minify' untuk memadatkannya menjadi satu baris.

  4. 4

    Salin hasilnya

    Gunakan tombol 'Copy' untuk mengambil output yang telah diformat atau diperkecil untuk proyek Anda.

Bekerja dengan JSON: Pemformatan, Validasi, dan Kesalahan yang Menggigit

Apa sebenarnya JSON itu

JSON (JavaScript Object Notation) adalah format pertukaran data berbasis teks yang telah menjadi cara baku layanan-layanan saling berbicara melalui HTTP. Meski namanya begitu, ia tidak bergantung pada bahasa: pengurai tersedia untuk setiap bahasa arus utama, dan format kawatnya hanyalah teks UTF-8. Sebuah dokumen dibangun dari tepat enam tipe nilai — objek (koleksi pasangan kunci/nilai tak berurut), larik (daftar berurut), string, angka, boolean true dan false, serta null. Segala sesuatu yang Anda serialisasikan, dari respons API hingga berkas konfigurasi, terurai menjadi keenam tipe itu.

Dua aturan terus-menerus menjebak orang. Pertama, kunci dalam sebuah objek harus berupa string yang berkutip ganda — pengenal telanjang tidak diizinkan, tidak seperti literal objek JavaScript. Kedua, JSON tidak memiliki pembedaan integer versus float dan tidak memiliki sintaks komentar. Sebuah angka hanyalah angka, dan catatan manusia apa pun yang ingin Anda tinggalkan harus berada di dalam sebuah nilai string atau dihapus sebelum penguraian.

Memformat versus meminify

Keduanya adalah dua tampilan dari data yang sama. Memformat (juga disebut mempercantik atau pretty-printing) menyisipkan baris baru dan indentasi sehingga penyusunan bertingkatnya terlihat sekilas — inilah yang Anda inginkan saat membaca sebuah muatan, membandingkan dua respons dalam kendali versi, atau menempel sebuah contoh ke dalam dokumentasi. Meminify melakukan kebalikannya: ia menghapus setiap bita spasi kosong yang tak penting untuk menghasilkan satu baris ringkas, yang merupakan apa yang Anda kirim melalui jaringan di mana setiap kilobita berbiaya latensi dan lebar pita.

Kedua arah ini tanpa kehilangan data untuk datanya sendiri. Spasi kosong di antara token tidak pernah penting dalam JSON, jadi meringkas objek 40 baris menjadi satu baris dan memuainya kembali menghasilkan nilai terurai yang identik. Satu-satunya yang berubah adalah jumlah bita dan keterbacaan, yang persis menjadi alasan alat ini menawarkan kedua tombol alih-alih memaksakan satu gaya.

Kesalahan sintaks yang benar-benar akan Anda temui

Kesalahan tunggal yang paling umum adalah koma di akhir (trailing comma) — sebuah koma setelah elemen terakhir sebuah larik atau pasangan terakhir sebuah objek. JavaScript memakluminya; JSON melarangnya, jadi daftar yang berakhir dengan koma sebelum kurung penutup akan gagal diurai. Tepat di belakangnya adalah kutip tunggal alih-alih kutip ganda (string JSON harus menggunakan kutip ganda) dan kunci tanpa kutip yang disalin langsung dari sumber JavaScript.

Biang keladi lain yang sering: komentar nyasar (// atau gaya blok), yang valid dalam JSONC dan JSON5 tetapi tidak dalam JSON yang ketat; nilai seperti NaN, Infinity, atau undefined, yang sama sekali tidak ada dalam spesifikasi; serta karakter kontrol yang tidak di-escape seperti tab atau baris baru harfiah di dalam sebuah string. Ketika validator menunjuk ke sebuah baris, telusuri satu atau dua karakter sebelum posisi yang disorot — pengurai sering kali baru menyadari masalahnya pada token berikutnya setelah kesalahan yang sebenarnya.

Memilih gaya indentasi

Dua spasi adalah standar de facto untuk JSON di web dan default yang dipancarkan sebagian besar perkakas, termasuk banyak linter dan pemformat. Empat spasi terbaca lebih lapang untuk struktur yang bertingkat dalam, dan tab memungkinkan setiap pengembang memilih lebar di layarnya sendiri sambil menjaga berkas tetap identik bita demi bita. Jawaban yang tepat adalah apa pun yang sudah digunakan repositori Anda; mencampuradukkan gaya dalam satu proyek menghasilkan diff yang berisik dan tak bermakna.

Indentasi sepenuhnya bersifat kosmetik dan dibuang begitu dokumen diurai, sehingga ia tidak pernah memengaruhi kebenaran. Pilih sebuah lebar, terapkan secara konsisten, dan biarkan pemformat menormalkan apa pun yang ditempel dari sumber lain.

Urutan kunci dan integritas data

Pemformat ini mengindentasi ulang dan menata ulang spasi dokumen Anda tetapi tidak mengurutkan ulang kunci atau mengubah nilai apa pun. Hal itu penting karena, meskipun spesifikasi JSON mendefinisikan objek sebagai tak berurut, hampir setiap pengurai nyata mempertahankan urutan penyisipan, dan konsumen di hilir — uji snapshot, muatan yang ditandatangani, peninjau manusia yang membaca sebuah diff — sering kali bergantung padanya. Sebuah alat yang diam-diam mengurutkan kunci bisa merusak pemeriksaan tanda tangan atau mengubur perubahan satu baris di dalam pengocokan seratus baris.

Jika Anda memang menginginkan keluaran yang kanonis dan terurut untuk diff yang stabil atau hashing konten, itu adalah operasi yang disengaja dan terpisah yang harus Anda pilih secara sadar — bukan efek samping dari pretty-printing. Menjaga pemformatan dan pengurutan-ulang tetap terpisah berarti Anda selalu tahu persis apa yang berubah.

Angka, presisi, dan Unicode

Angka JSON bersifat desimal dan tidak memiliki batas ukuran yang dinyatakan, tetapi mesin JavaScript yang menguraikannya di peramban Anda menyimpannya sebagai bilangan titik-mengambang 64-bit. Itu berarti integer yang lebih besar daripada sekitar sembilan kuadriliun (plafon integer-aman) dapat kehilangan presisi dalam perjalanan bolak-balik, itulah sebabnya ID besar, nilai snowflake, dan jumlah uang sering ditransmisikan sebagai string alih-alih angka mentah. Jika ketepatan itu penting, kutiplah nilainya.

String adalah Unicode penuh. Anda dapat menulis karakter langsung sebagai UTF-8 atau sebagai urutan escape garis-miring-terbalik-u, dan kedua bentuk itu terurai menjadi titik kode yang sama. Karena formatnya adalah teks UTF-8 dari ujung ke ujung, huruf beraksen, aksara non-Latin, dan emoji bertahan utuh melalui pemformatan dan minifikasi.

Semuanya tetap di peramban Anda

Semua penguraian, validasi, dan serialisasi-ulang berjalan secara lokal dalam JavaScript. Tidak ada yang Anda tempel diunggah, dicatat, atau disimpan di server, sehingga aman untuk memformat respons API yang berisi token akses, pengenal internal, atau data pelanggan. Plafon praktisnya adalah memori perangkat Anda alih-alih batas unggah apa pun, jadi ekspor besar terformat dengan baik pada mesin yang spesifikasinya memadai.

Sebuah kebiasaan yang berguna: ketika sebuah integrasi berperilaku salah, tempel respons mentahnya di sini terlebih dahulu. Memastikan muatan tersebut adalah JSON yang berbentuk baik sebelum Anda menyalahkan kode Anda memisahkan bug serialisasi dari bug penguraian dalam hitungan detik, dan ia melakukannya tanpa membocorkan muatan ke mana pun.

Pertanyaan yang sering diajukan

Apa perbedaan antara Format dan Minify?
Format (rapikan) menambahkan baris baru dan indentasi sehingga strukturnya mudah dibaca, sedangkan Minify menghapus semua whitespace yang tidak perlu untuk menghasilkan JSON satu baris sekecil mungkin untuk muatan produksi.
Apakah formatter memvalidasi JSON saya?
Ya. Jika JSON tidak valid, alat ini menampilkan error yang menyoroti letak masalahnya alih-alih menghasilkan output, sehingga Anda dapat dengan cepat menemukan koma, kurung, atau tanda kutip yang hilang.
Opsi indentasi apa yang tersedia?
Anda dapat memformat dengan 2 spasi, 4 spasi, atau karakter tab, sehingga Anda dapat menyesuaikan dengan gaya pengkodean tim atau proyek Anda.
Apakah alat ini mengubah urutan kunci atau mengubah data saya?
Tidak. Alat ini hanya mengindentasi ulang atau memadatkan struktur yang ada. Urutan kunci dan semua nilai dipertahankan persis seperti yang muncul di input Anda.
Apakah JSON saya diunggah, dan bisakah menangani file besar?
Tidak ada yang diunggah. Formatter berjalan sepenuhnya di browser Anda, sehingga aman untuk data sensitif, dan dapat menangani dokumen besar yang hanya dibatasi oleh memori yang tersedia di perangkat Anda.

Alat terkait

Lanjutkan dengan alat praktis ini

Kompresor HTML

Konverter HTML ke Teks

Penguji Regex

Dekoder JWT

Generator Gradien CSS

Generator Box Shadow CSS