JSON formatter dan validator
Berjalan di browser Anda; tidak ada yang diunggah
Format, validasi, dan minify JSON. Error menunjuk baris dan kolom yang tepat.
Input
Formatted JSON appears here as you type.
Apa yang dilakukan formatter ini
JSON adalah format yang dipakai sebagian besar API web untuk body request dan response. Server biasanya mengirimnya dalam bentuk minified, tanpa spasi dan baris baru, yang ringkas tapi sulit dibaca. Format (pretty-print) menambahkan indentasi agar Anda bisa melihat key mana milik object mana; minify menghapusnya lagi.
Untuk memformat JSON, tool ini harus mem-parse-nya, jadi memformat sekaligus memvalidasi. Jika teks bukan JSON yang valid, Anda mendapat baris dan kolom tempat parsing berhenti, apa yang diharapkan di sana, dan penyebab yang umum. Komentar, koma di akhir, tanda kutip tunggal, key tanpa kutip, dan True/None dari Python bisa diperbaiki otomatis: tool ini mendaftar setiap perubahan lebih dulu dan tidak menerapkan apa pun sampai Anda mengonfirmasi.
Di sini, memformat tidak pernah mengubah nilai. Tool ini memakai parser sendiri, bukan JSON.parse, sehingga angka mempertahankan digit seperti saat ditulis (12345678901234567890 dan 1.50 tetap apa adanya), escape seperti \u00e9 tetap escape, dan key duplikat tetap di tempatnya. Jika dokumen berisi data yang akan diubah oleh JSON.parse, seperti integer di atas 2^53 atau key yang muncul dua kali, Inspector mendaftarnya di Data warnings.
Cara memakai tool ini
- 1Tempel JSON ke panel Input, seret file
.jsonke sana, atau tekan Ctrl+O untuk membuka file (hingga 5 MB). Examples berisi contoh untuk dicoba. - 2Tab Output menampilkan hasil saat Anda mengetik. Pilih indentasi (2 spasi, 4 spasi, atau tab), urutkan key, atau beralih antara Pretty dan Minified. Panah di samping nomor baris melipat object dan array.
- 3Untuk menulis ulang input itu sendiri, gunakan Format (Shift+Alt+F) atau Minify (Shift+Alt+M). Ctrl+Z membatalkan keduanya, begitu juga Clear dan perbaikan yang sudah diterapkan.
- 4Jika JSON tidak valid, status bar dan tab Output menunjukkan lokasinya. Tekan F8 untuk menaruh kursor di error, atau Review fixes untuk melihat perbaikan otomatis.
- 5Tree, Table, JSONPath, dan Compare menampilkan data yang sama dengan cara lain: pilih node di tree untuk menyalin path atau nilainya, query dengan ekspresi seperti
$.items[?(@.price < 10)].id, atau tempel dokumen kedua untuk melihat daftar perubahannya. - 6Salin output, atau unduh dalam bentuk terformat atau minified (Ctrl+S). Tekan ? untuk melihat semua shortcut keyboard.
Pemecahan masalah
- Koma di akhir: hapus
,sebelum} - JSON tidak mengizinkan koma setelah item terakhir object atau array. Hapus koma itu, atau gunakan Review fixes. Biasanya berasal dari kode JavaScript atau file konfigurasi yang ditulis manual.
- Nama properti harus memakai tanda kutip ganda
- Teks ini adalah object literal JavaScript (
{name: 'x'}), bukan JSON. Setiap key dan string perlu tanda kutip ganda. Review fixes akan menambahkannya. Trueadalah Python; JSON memakaitrue- Data dicetak dengan
print()ataustr()dari Python. Gunakanjson.dumps()untuk menghasilkan JSON, atau biarkan Review fixes menggantiTrue,False, danNone. - Input berakhir tiba-tiba: object yang dibuka di baris 1 belum ditutup
- Teks berhenti sebelum semua
{dan[ditutup. Kemungkinan response yang disalin terpotong; salin lagi, atau simpan ke file lalu buka file itu. - Ada konten tak terduga setelah nilai JSON
- Ada dua atau lebih nilai JSON berurutan. Bungkus dalam array, atau untuk log JSON per baris (NDJSON), periksa satu baris per satu.
- Teks diawali byte order mark (BOM)
- File disimpan sebagai 'UTF-8 with BOM'. Banyak parser menolak tanda tak terlihat di awal ini. Simpan sebagai UTF-8 biasa, atau gunakan Review fixes untuk menghapusnya.
- String tidak boleh melewati beberapa baris
- Sebuah string berisi baris baru yang asli, sering karena menempel teks yang mengandung baris baru. Ganti baris baru itu dengan
\n. - Angka di kode Anda berbeda dengan yang ada di JSON
- Integer di atas 9.007.199.254.740.991 kehilangan presisi saat di-parse JavaScript, jadi ID 19 digit bisa berubah. Tool ini menampilkan digit sesuai tulisan dan memberi peringatan; di API Anda, kirim ID seperti itu sebagai string.
Pertanyaan umum
Apakah JSON saya diunggah ke mana pun?
Tidak. Parsing, format, dan semua tampilan berjalan di tab browser Anda. Agar tidak hilang saat reload, apa yang Anda tempel disimpan di session storage tab ini sampai Anda menghapusnya atau menutup tab. Copy link menaruh input di link setelah tanda #, bagian yang tidak pernah dikirim browser ke server, tetapi siapa pun yang Anda beri link bisa membacanya. Pengaturan Anda, seperti indentasi, disimpan di browser ini.
Apakah memformat mengubah data saya?
Tidak. Nilai disalin persis seperti ditulis, termasuk angka besar, escape, dan key duplikat. Dua opsi memang sengaja mengubah teks: Sort keys mengurutkan ulang key (berdasarkan kode karakter, jadi huruf besar sebelum huruf kecil), dan Minify menghapus spasi di luar string.
Apa yang terjadi dengan key duplikat?
Key duplikat dipertahankan dan ditampilkan seperti ditulis, dengan peringatan. Standar JSON tidak mendefinisikan key duplikat; JSON.parse dan sebagian besar library hanya menyimpan nilai terakhir, jadi kode yang membaca dokumen ini kemungkinan hanya melihat satu. Tampilan Table, Compare, dan JSONPath mengikuti aturan yang sama: yang terakhir menang.
Sintaks JSONPath apa yang didukung?
Sintaks Goessner yang umum: $ untuk root, .key dan ['key'], indeks termasuk yang negatif, [*] dan .. untuk pencarian rekursif, union seperti [0,2], slice seperti [1:3], dan filter seperti [?(@.price < 10 && @.inStock)]. Filter membandingkan angka sebagai angka JavaScript, jadi integer di atas 2^53 dibandingkan secara perkiraan.
Seberapa besar file yang bisa ditangani?
File hingga 5 MB bisa dibuka langsung. Dokumen sekitar 4 MB hanya butuh sepersekian detik untuk dicek dan diformat di laptop biasa; di atas sekitar 200 KB, tool ini menunggu Anda berhenti mengetik sebelum mengecek lagi. Nesting lebih dari 2.000 level dilaporkan sebagai error.