Pemformat & Validator JSON
Tempelkan JSON dan cetak rapi dengan indentasi 2, 4, atau 8 spasi, padatkan menjadi satu baris, atau cukup periksa apakah JSON itu dapat diurai. JSON yang valid dikembalikan dengan pewarnaan sintaks dan ukuran sebelum serta sesudahnya; JSON yang tidak valid dikembalikan dengan pesan kesalahan dari peramban Anda sendiri. Gratis, tanpa perlu mendaftar, dan tidak ada yang Anda tempel meninggalkan peramban Anda.
0 baris · 0 byte
Cara Menggunakan Pemformat JSON
- 1. Tempelkan JSON Anda. Dari satu nilai saja hingga respons API yang besar. Kotak menghitung baris dan byte saat Anda mengetik.
- 2. Pilih indentasi. Pilih 2, 4, atau 8 spasi. Pengaturan ini hanya memengaruhi Format.
- 3. Pilih tindakan. Format mencetak rapi, Minifikasi menghapus setiap spasi dan jeda baris yang opsional, dan Hanya validasi memeriksa sintaksnya lalu menampilkan vonis hijau atau merah tanpa menghasilkan keluaran.
- 4. Baca hasilnya. JSON yang valid ditampilkan berwarna (kunci ungu, string hijau, angka biru, true dan false oranye, null merah) dengan ukuran masukan, ukuran keluaran, dan persentase perubahan. JSON yang tidak valid menampilkan pesan pengurai sebagai gantinya. Salin Output menyalin apa yang Anda lihat.
Apa yang Dianggap JSON yang Valid
Alat ini menyerahkan teks Anda ke pengurai JSON yang ketat milik mesin JavaScript, sehingga ia menerima apa yang disyaratkan standar format, RFC 8259 (tata bahasa yang sama dengan ECMA-404), dan tidak lebih. Ini lebih ketat daripada literal objek JavaScript, itulah sebabnya kode yang berfungsi dalam skrip sering gagal di sini. Penyebab yang paling umum:
| Kesalahan | Contoh | Perbaikan |
|---|---|---|
| Koma di akhir | {"a": 1,} | Hapus koma terakhir. |
| Tanda kutip tunggal | {'a': 1} | Gunakan tanda kutip ganda untuk setiap kunci dan string. |
| Kunci tanpa tanda kutip | {a: 1} | Beri tanda kutip: {"a": 1}. |
| Komentar | // note atau /* note */ | JSON tidak punya komentar; hapus. |
| Angka nol di depan atau tanda plus | 007, +5 | Tulis 7 dan 5. |
| NaN, Infinity, atau undefined | {"x": NaN} | Tidak ada dalam JSON; gunakan null atau string. |
| Jeda baris mentah dalam string | baris baru di dalam tanda kutip | Tulis sebagai dua karakter \n. |
| Koma yang hilang | {"a": 1 "b": 2} | Pisahkan anggota dengan koma. |
42, "text", atau null sendiri juga valid: sejak RFC 7159 sebuah teks JSON bisa berupa nilai apa pun, tidak hanya objek atau larik. True atau NULL dengan huruf kapital tidak valid — ketiga literal itu harus huruf kecil.
Apa yang Diubah oleh Pemformatan
Alat ini mengurai JSON Anda dan menuliskannya kembali, sehingga hasilnya adalah data yang sama dalam tata letak baru, bukan salinan karakter demi karakter dari teks Anda. Empat hal bisa berbeda, dan dua yang pertama penting jika Anda memformat JSON yang akan diumpankan ke sistem lain:
- Bilangan bulat besar kehilangan presisi. Angka JavaScript adalah bilangan float 64-bit, sehingga bilangan bulat di atas 9.007.199.254.740.991 (253 − 1) dibulatkan.
9007199254740993kembali sebagai9007199254740992. Jika ID Anda sebesar itu, simpan sebagai string. - Kunci duplikat tergabung. RFC 8259 menyatakan nama sebaiknya unik tetapi tidak melarang pengulangan; alat ini menyimpan nilai terakhir dan membuang yang sebelumnya.
- Kunci berbentuk bilangan bulat pindah ke depan. Dalam JavaScript, kunci seperti
"1"dan"2"didaftarkan sebelum kunci lain menurut urutan naik, sehingga{"b":1,"2":1,"1":1}dituliskan kembali sebagai{"1":1,"2":1,"b":1}. Kunci lain mempertahankan urutan Anda. - Angka dan escape ditulis ulang.
1.50menjadi1.5,1e2menjadi100, dan\u00e9menjadié.
Contoh Kasus
Ambil masukan 119 byte ini, yang berisi ID besar, angka nol di belakang, eksponen, dan escape:
Masukan
{"title":"APA Manual","year":2020,"tags":["style","7th"],"id":9007199254740993,"price":1.50,"x":1e2,"name":"caf\u00e9"}
Format dengan 2 spasi menghasilkan 156 byte (+31%), satu anggota per baris, dengan "id": 9007199254740992, "price": 1.5, "x": 100, dan "name": "café". Minifikasi menghasilkan 114 byte (-4%) dalam satu baris, dengan perubahan yang sama. Tidak ada hal lain tentang data yang berbeda. Ukuran dihitung dalam byte UTF-8, sehingga é dihitung dua.
Alat Mana yang Anda Butuhkan?
Halaman ini untuk JSON itu sendiri. Jika data Anda berada dalam format lain, ada alat kerabat yang bisa membantu: CSV ke JSON untuk spreadsheet, konverter YAML to JSON Converter dan XML to JSON Converter yang direncanakan, Pemformat XML untuk dokumen XML, dan HTML Formatter untuk markup.
Pertanyaan yang Sering Diajukan
- Apa yang dilakukan pemformat JSON?
- Ia mengurai JSON dan menuliskannya kembali dengan indentasi yang konsisten dan satu anggota per baris, sehingga respons API yang diminifikasi menjadi mudah dibaca. Karena harus mengurai dulu, ia juga berfungsi sebagai validator: teks yang bukan JSON valid menghasilkan kesalahan, bukan keluaran.
- Mengapa JSON saya dikatakan tidak valid?
- Biasanya karena salah satu kesalahan dalam tabel di atas: koma di akhir, tanda kutip tunggal, kunci tanpa tanda kutip, komentar, atau koma yang hilang. Pesan itu berasal dari pengurai JSON peramban Anda sendiri, sehingga kata-katanya berbeda antara Chrome, Firefox, dan Safari, dan mungkin atau tidak menyebutkan posisi. Carilah masalahnya di posisi yang disebutkan atau tepat sebelumnya.
- Bisakah saya memformat JSON dengan komentar, JSON5, atau JSONC?
- Tidak. Komentar, koma di akhir, dan tanda kutip tunggal bukan bagian dari JSON, dan alat ini memakai pengurai yang ketat. Hapus dulu, atau ubah berkas menjadi JSON biasa di editor Anda.
- Apa bedanya Format, Minifikasi, dan Hanya validasi?
- Format menambahkan indentasi dan jeda baris, Minifikasi menghapus semua spasi opsional untuk menghasilkan teks terkecil, dan Hanya validasi memeriksa sintaks lalu menampilkan vonis tanpa keluaran. Ketiganya memakai pengurai yang sama, sehingga dokumen yang lolos salah satunya akan lolos semuanya.
- Mengapa sebuah angka di JSON saya berubah?
- Alat ini membaca angka sebagai float JavaScript dan menuliskannya kembali dalam bentuk terpendek JavaScript. Itu mengubah
1.50menjadi1.5dan1e2menjadi100, serta membulatkan bilangan bulat yang lebih besar dari 253 − 1. Simpan pengenal yang sangat besar sebagai string jika harus tetap persis. - Apakah JSON saya diunggah ke suatu tempat?
- Tidak. Pengurai, pemformatan, dan penyorotan semuanya berjalan di peramban Anda, dan teks yang Anda tempel tidak dikirim ke CitationEasy maupun pihak lain. Bersihkan kotak setelah selesai jika Anda memakai komputer bersama.
- Bisakah saya mengurutkan kunci atau memakai tab untuk indentasi?
- Tidak di sini. Pilihan indentasi adalah 2, 4, atau 8 spasi, dan kunci tetap dalam urutan yang diberikan masukan Anda, kecuali kunci berbentuk bilangan bulat yang pindah ke depan seperti dijelaskan di atas.