Cek JSON Anda
Bukan sekadar valid atau tidak valid — baris, kolom, karakter, dan apa yang perlu dilakukan. Tidak ada yang disimpan; pemeriksaan berjalan di sini.
- Tidak pernah disimpan
- Tanpa antre, tanpa menunggu
- Tanpa daftar, tanpa watermark
Tempel JSON dan JSON langsung diperiksa saat Anda mengetik.
Cara kerjanya
Tempel JSON Anda
Atau letakkan file-nya. File dibaca di tempatnya; tidak ada yang dikirim ke mana pun.
Baca hasilnya
Valid, beserta hitungan isinya. Atau tidak valid, dengan posisi persisnya ditandai.
Perbaiki dan cek ulang
Edit langsung di tempat dan hasilnya diperbarui saat Anda mengetik.
Apa saja yang sebenarnya dilarang JSON
Tata bahasa JSON sengaja dibuat sangat kecil, dan hampir setiap kegagalan validasi adalah salah satu dari segelintir hal yang dipinjam orang dari JavaScript tetapi tidak pernah diadopsi JSON. Koma di akhir setelah elemen terakhir. Tanda kutip tunggal alih-alih ganda. Key tanpa tanda kutip. Komentar — JSON tidak punya, dan memang tidak pernah punya. NaN dan Infinity, yang merupakan angka JavaScript yang valid tetapi bukan JSON yang valid. Dan byte order mark di awal, tak terlihat di editor mana pun, yang ditambahkan sebagian alat Windows saat menyimpan sebagai UTF-8 dan membuat dokumen yang sebenarnya baik gagal di karakter pertamanya.
Ada dua hal yang sah tetapi tetap bisa merepotkan Anda, dan itulah sebabnya “valid” tidak sama dengan “benar”. Key duplikat tidak dilarang oleh spesifikasinya — dan setiap parser menyelesaikannya dengan cara berbeda, kebanyakan mengambil yang terakhir, jadi dokumen dengan key berulang lolos validasi di sini tetapi bermakna berbeda di bahasa pemrograman yang berbeda. Dan angka tidak punya batas presisi yang ditetapkan di JSON, sementara kebanyakan parser membacanya sebagai floating point: bilangan bulat di atas sekitar sembilan kuadriliun dibulatkan diam-diam, dan itulah sebabnya identifier besar sering dibawa sebagai string.
Yang Anda dapatkan adalah baris, kolom, dan karakter persis tempat penguraian berhenti, yang biasanya lebih berguna daripada pesan error-nya sendiri. Parser melaporkan titik di mana dokumen berhenti masuk akal, bukan tempat kesalahan dibuat — kurung kurawal penutup yang hilang dilaporkan di akhir file, dan koma yang hilang dilaporkan di token sesudahnya. Membiasakan diri melihat tepat sebelum posisi yang dilaporkan adalah kebiasaan yang paling menghemat waktu.
Tersusun dengan benar tidak sama dengan isinya benar, dan perbedaan itu penting. Alat ini memastikan bahwa sintaksnya bisa diurai. Apakah dokumen berisi field yang dibutuhkan API Anda, apakah sebuah nilai berada dalam rentang, apakah sebuah tanggal benar-benar tanggal — tidak satu pun dari itu merupakan pertanyaan JSON. Itu validasi skema, yang membutuhkan skema, dan sebuah dokumen bisa sempurna di sini namun langsung ditolak oleh layanan yang Anda kirimi.
Jika Anda butuh hal lain
Untuk memeriksa dokumen terhadap skema, bukan terhadap tata bahasa, JSON Schema adalah standarnya dan ajv adalah implementasi tercepatnya — ia akan memberi tahu bahwa sebuah field wajib tidak ada atau sebuah nilai di luar rentang, yang biasanya justru pertanyaan Anda sebenarnya. check-jsonschema menjalankan pemeriksaan yang sama dari command line dan di CI.
Untuk apa pun di command line, jq adalah alat yang wajib dimiliki: jq empty file.json memvalidasi dan tidak mencetak apa pun jika berhasil, sangat pas untuk skrip, dan jq . memformat. Untuk file yang terlalu besar untuk ditampung di memori, jq --stream dan ijson milik Python mengurai secara bertahap, hal yang tidak bisa dilakukan halaman mana pun yang memuat seluruh dokumen.
Pertanyaan yang sering diajukan
Apakah JSON saya disimpan di suatu tempat?
Tidak. Tidak ada panggilan ke server dan tidak ada pencatatan log, dan tidak ada yang disimpan. Anda bisa memutus koneksi internet setelah halaman dimuat dan alat ini tetap berfungsi. Hal ini lebih penting daripada kelihatannya: yang biasa ditempel orang ke formatter online adalah respons API, file konfigurasi, dan payload error, dan semua itu sering membawa token, data pelanggan, dan hostname internal.
Apa yang ditampilkan jika JSON-nya rusak?
Baris, kolom, baris itu sendiri dengan tanda caret di bawah karakter yang tepat, dan apa yang seharusnya ada di sana. Sebagian besar JSON rusak karena salah satu dari empat alasan — koma di akhir, tanda kutip tunggal alih-alih ganda, key tanpa tanda kutip, atau baris baru sungguhan di dalam string — dan masing-masing disebutkan namanya, bukan digambarkan sebagai syntax error umum.
Apa yang dianggap valid?
RFC 8259, secara ketat. Artinya key dengan tanda kutip ganda, tanpa koma di akhir, tanpa komentar, dan tanpa nol di depan atau heksadesimal pada angka. Ketat adalah inti dari sebuah validator: jika ia menerima apa yang akan ditolak parser Anda, ia tidak memberi tahu Anda apa-apa.
Apakah alat ini memeriksa JSON saya terhadap skema?
Tidak — alat ini memeriksa sintaks, dan itu pertanyaan yang berbeda. Sintaks menyangkut apakah teksnya JSON atau bukan. Skema menyangkut apakah datanya punya field dan tipe yang benar. Halaman ini menjawab yang pertama; ia akan memberi tahu bahwa file bisa diurai dan menunjukkan struktur yang ditemukannya, tetapi tidak tahu seharusnya field Anda seperti apa.
Kenapa hasilnya valid padahal API saya tetap menolaknya?
Karena JSON yang valid dan JSON yang diinginkan API Anda adalah dua hal berbeda. Dokumen yang sintaksnya sempurna tetap bisa kekurangan field wajib, memakai string di tempat yang seharusnya angka, atau menyusun data secara berbeda dari yang diharapkan endpoint. Cocokkan ringkasan struktur yang ditampilkan halaman ini dengan dokumentasi API — ketidakcocokannya biasanya langsung terlihat.
Apakah angka besar diperiksa dengan benar?
Ya, digit demi digit — kebanyakan validator diam-diam merusaknya. Angka JavaScript adalah float 64-bit, jadi hanya bisa menyimpan bilangan bulat hingga 9.007.199.254.740.991 secara persis. Apa pun yang lebih besar — ID postingan Twitter/X, snowflake Discord, nomor rekening bank, key database 64-bit — kehilangan digit terakhirnya begitu melewati `JSON.parse`. Angkanya masih terlihat wajar, dan justru itulah bahayanya: 7205759403792793600 diam-diam berubah menjadi 7205759403792793000. Halaman ini mempertahankan digit yang Anda tempel secara persis, dan memberi tahu berapa banyak angka yang harus dilindunginya.
Apakah ada batas ukuran?
Memori yang tersedia, bukan batas yang kami tetapkan. Dokumen berukuran beberapa megabyte langsung terformat; dokumen yang sangat besar dibatasi oleh seberapa banyak yang bisa ditampung sekaligus, bukan oleh apa pun di sisi kami.
Perlu diketahui: Alat ini memeriksa apakah JSON-nya tersusun dengan benar, bukan apakah isinya bermakna. Sebuah dokumen bisa sepenuhnya valid tetapi tetap tidak memiliki field yang diharapkan API Anda — itu validasi skema, yang membutuhkan skema. Yang Anda dapatkan di sini adalah baris, kolom, dan karakter persis tempat penguraian berhenti.
Pasang alat ini di situs Anda
Gratis untuk blog, halaman kelas, atau artikel bantuan apa pun. Tempel satu potong kode dan pengunjung Anda bisa langsung memakainya di halaman Anda.