AI di perangkat — profesional dan privat.

Validator sintaks JSON

JSON divalidasi dengan baris, kolom, dan sebab yang tepat.

  • Berjalan di perangkat Anda
  • Semua error sekaligus
  • Kunci ganda dan hilangnya presisi

Letakkan berkas JSON di sini

Atau tempel di bawah. Hingga 25 MB pada paket gratis.

Masukan JSONBr 1, Kol 1
Pengaturan validasi
Jenis dokumen
Jenis dokumen

Otomatis membaca berkas sebagai satu dokumen JSON dan menawarkan mode per baris saat berkasnya tampak seperti NDJSON.

Pemeriksaan tambahan

Ini JSON yang sah dan diterima diam-diam oleh semua parser — justru itulah alasan hal ini layak dilaporkan.

JSON Schema
Draft

Opsional. Draft 2020-12 dan draft-07. Referensi diselesaikan di dalam skema ini; tidak ada yang diunduh.

Format laporan
Format laporan
Pro

Teks gratis. JSON dan CSV untuk langkah CI atau tiket.

Batasan

Gratis: satu berkas sekali jalan, hingga 25 MB. Semua pemeriksaan termasuk.

Belum ada yang perlu diperiksa

Cara memvalidasi JSON

  1. 1Tempel atau unggah JSONTempel JSON Anda ke editor, atau seret berkas .json, .jsonc, .json5, .ndjson, .geojson, atau .webmanifest ke area unggah. JSON yang diperkecil maupun yang diformat sama-sama bisa, dan tidak ada yang diunggah ke mana pun.
  2. 2Tekan ValidasiSetiap error sintaks muncul sekaligus dengan baris, kolom, dan offset byte-nya, serta penanda tepat di karakter yang bermasalah. JSON yang valid justru menampilkan tipe akar, ukuran, dan strukturnya.
  3. 3Baca juga peringatannyaKunci ganda dan angka yang kehilangan presisi adalah JSON yang sah dan diterima diam-diam oleh semua parser. Keduanya muncul sebagai peringatan dengan JSON Pointer, karena itulah jenis kesalahan yang lolos sampai ke produksi.
  4. 4Perbaiki sendiri, atau biarkan alat ini memperbaikinyaKlik salah satu temuan untuk memindahkan kursor ke sana. Jika teksnya JSON5, JSONC, atau dictionary Python alih-alih JSON rusak, alat ini akan mengatakannya dan menawarkan salinan yang sudah diperbaiki untuk diterapkan atau diunduh.

Apa yang ditawarkan validator JSON ini

Periksa keabsahan JSON dalam hitungan detik, dengan lokasi error yang tepat, keterangan parser, dan ringkasan struktur untuk debug cepat. Tempel atau unggah JSON lalu tekan Validasi untuk mendapat hasil lolos atau gagal seketika. Saat valid, Anda melihat tipe akar, ukurannya, dan laporan struktur lengkap. Saat tidak, Anda melihat semua error sekaligus — masing-masing dengan baris, kolom, offset byte, dan penanda tepat di karakternya — ditambah peringatan yang tidak ditunjukkan validator lain: kunci ganda dan angka yang diam-diam berubah nilai saat diurai. Semuanya berjalan di perangkat Anda, bukan di server kami — aman untuk payload privat, token, dan skema internal.

  • Semua error sekaligus — Parser berhenti di kesalahan pertama. Yang ini menyelaraskan diri kembali dan lanjut, jadi berkas dengan empat puluh kesalahan cukup satu lintasan, bukan empat puluh.
  • Lokasi yang sama di mana pun — Baris, kolom, offset byte, dan penanda, dihitung dari byte alih-alih dikorek dari pesan peramban — identik di Chrome, Firefox, dan Safari.
  • Kesalahan yang lolos di tempat lain — Kunci ganda dan angka yang kehilangan presisi adalah JSON yang sah. Keduanya juga cara data menghilang tanpa suara, jadi dilaporkan sebagai peringatan.
  • Skema, dialek, dan perbaikan — Periksa terhadap JSON Schema, ketahui bahwa berkas Anda sebenarnya JSON5, dan bawa salinan yang sudah diperbaiki dengan sekali tekan.
  • Tempel atau unggah — Tempel dari papan klip, seret berkas, atau telusuri. Atur ulang membersihkan masukan dan hasil sekaligus.

Di mana error sebenarnya berada

Hal paling berguna yang bisa disampaikan sebuah validator adalah di mana harus melihat, dan justru itulah yang paling tidak andal pada kebanyakan validator online. Mereka meneruskan apa kata parser bawaan peramban, dan pesan itu tidak sama di semua peramban.

Diukur pada tiga mesin nyata: parser Safari melaporkan «JSON Parse error: Expected '}'», tanpa posisi, tanpa baris, tanpa kolom. Firefox menyebut baris dan kolom tetapi tanpa offset karakter. Hanya Chrome menyebut ketiganya. Validator yang membaca pesan-pesan itu dengan pola karenanya hanya bekerja benar di satu dari tiga peramban, dan menurun diam-diam di sisanya.

  • Baris dan kolom — Dihitung dalam karakter, bukan byte, agar baris yang diawali kata beraksen tidak melaporkan kolom yang berbeda dari editor Anda.
  • Offset byte — Yang Anda butuhkan saat berkas ditangani skrip, bukan editor.
  • Penanda di bawah kesalahan — Baris yang bermasalah, dengan karakter tepatnya ditandai. Pada baris panjang, cuplikannya dipotong di sekitar kesalahan, bukan di awal.
  • JSON Pointer — Di mana kesalahannya berada dalam struktur dokumen — /users/3/email — bukan hanya di dalam teks.

Semua error, bukan hanya yang pertama

Parser JSON dibuat untuk menghasilkan nilai, jadi begitu bertemu sesuatu yang tak bisa dipakai ia melempar pengecualian dan berhenti. Itu benar untuk parser dan tidak membantu untuk validator: perbaiki koma yang hilang di baris 12, jalankan lagi, temukan kunci tanpa kutip di baris 40, jalankan lagi.

Validator ini tidak sedang membangun nilai, jadi tidak ada yang perlu ditinggalkan. Saat bertemu token yang tidak cocok di mana pun, ia mencatat kesalahannya lalu menyelaraskan diri — memperlakukan koma yang hilang seolah ada, menutup wadah yang bertemu kurung yang salah — dan terus sampai akhir berkas. Hasilnya adalah daftar lengkap dalam satu lintasan. Pencatatan berhenti di seribu temuan, jauh melewati titik di mana berkas layak diperbaiki manual alih-alih dibuat ulang.

  • Pemisah yang hilang — Koma atau titik dua yang hilang diperlakukan sebagai salah ketik dan pemindaian berlanjut, alih-alih merambat menjadi error di setiap anggota berikutnya.
  • Kurung tidak berpasangan — Kurung penutup yang tidak cocok dengan pembukanya tetap menutup wadahnya, agar satu kekeliruan tidak mengubah sisa berkas menjadi derau.
  • String tak tertutup — String yang kehilangan tanda kutip berhenti di akhir barisnya, bukan menelan sisa dokumen.

Kunci ganda, dan mengapa tidak ada yang memperingatkan Anda

JSON mengizinkan kunci yang sama dua kali dalam satu objek. Spesifikasinya menahan diri untuk menyatakan apa yang seharusnya terjadi, dan jawaban praktisnya adalah semua parser arus utama menyimpan kemunculan terakhir dan membuang yang pertama tanpa sepatah kata.

Jadi berkas konfigurasi dengan satu kunci diatur dua kali tetap sah, dan separuhnya tidak melakukan apa pun. Respons API hasil penggabungan dengan field berulang tetap sah, dan satu dari dua nilainya hilang. Karena sah, hal ini tetap peringatan dan bukan kegagalan — putusannya harus sejalan dengan parser yang benar-benar akan memakai berkas itu — tetapi dilaporkan dengan JSON Pointer ke setiap kemunculan dan offset kemunculan pertama, agar Anda bisa melihat keduanya.

  • Tepat, bukan kira-kira — Kunci dibandingkan berdasarkan nilai hasil dekodenya, sehingga kunci yang ditulis "a" dan kunci sama yang ditulis dengan escape dikenali benar sebagai kunci yang sama.
  • Per objek, bukan per dokumen — Kunci yang sama pada dua objek bersaudara adalah normal dan tidak dilaporkan. Hanya pengulangan di dalam satu objek yang dilaporkan.
  • Di kedalaman mana pun — Duplikat dua puluh tingkat di bawah tetap ditemukan, lengkap dengan pointer yang menuju ke sana.

Angka yang berubah saat diurai

JSON tidak membatasi ukuran maupun presisi sebuah angka, dan hampir semua parser membacanya sebagai bilangan pecahan 64 bit. Di atas 9.007.199.254.740.991 sebuah bilangan bulat tidak lagi dapat diwakili persis, jadi ia dibulatkan — diam-diam, tanpa error dan tanpa peringatan di titik mana pun.

Ini bukan masalah teoretis. ID Snowflake, pengenal gaya Twitter, nomor pesanan, dan nilai pembukuan semuanya berada di rentang itu, dan gejalanya adalah catatan yang tidak ditemukan karena ID-nya kembali meleset beberapa ratus. Validator memeriksa setiap literal angka yang mungkin terpengaruh dan melaporkan nilai persisnya berdampingan dengan nilai yang akan dihasilkan parser.

  • Bilangan bulat besar — Dibandingkan secara persis, memakai aritmetika presisi sembarang alih-alih nilai pecahan yang justru sedang dipersoalkan.
  • Desimal panjang — Desimal yang tidak bisa dipulihkan dari double hasilnya dilaporkan beserta nilai pembulatan yang sebenarnya.
  • Luapan dan kekurangan — 1e400 menjadi Infinity dan 1e-400 menjadi nol. Keduanya tidak dapat diwakili di JSON, dan tidak satu pun memicu error di tempat lain.
  • Murah saat tidak berlaku — Literal dengan lima belas digit atau kurang tidak mungkin kehilangan apa pun, jadi dilewati sepenuhnya. Hanya yang mungkin terpengaruh yang diperiksa.

JSON, JSONC, dan JSON5 — membedakannya

Sebagian besar berkas yang dilaporkan sebagai «JSON tidak sah» sama sekali tidak rusak. Berkas itu ditulis dalam sebuah dialek: JSONC, yang menambahkan komentar dan koma akhir, atau JSON5, yang juga mengizinkan kunci tanpa kutip, kutip tunggal, angka heksadesimal, dan NaN. Editor Anda membacanya tanpa keluhan; parser ketat menolaknya.

tsconfig.json, .eslintrc, dan sebagian besar berkas pengaturan editor adalah JSONC. Dictionary yang disalin dari sesi Python mirip JSON tetapi memakai True, False, dan None. Alih-alih menyebut semua itu rusak, validator menyebut apa yang sedang dilihatnya, merinci konstruksi yang bertanggung jawab, dan menawarkan salinan dalam JSON ketat.

  • Komentar — Komentar baris maupun blok dikenali — dan hanya di luar string, sehingga URL yang mengandung garis miring ganda tidak tersentuh.
  • Koma akhir — Koma sebelum kurung penutup, ditandai pada komanya dan bukan pada kurungnya.
  • Tanda kutip dan kunci telanjang — String berkutip tunggal, kunci tanpa kutip, dan tanda kutip tipografis yang ditinggalkan pengolah kata.
  • Literal bukan JSON — NaN dan Infinity, angka heksadesimal, tanda plus atau titik desimal di depan, serta True, False, dan None milik Python.

Perbaikan sekali klik

Setiap perbaikan berasal dari temuan yang sudah dilokalisasi pemindai, tidak pernah dari pola yang diterapkan ke seluruh dokumen. Perbedaan itu lebih penting daripada kedengarannya: ekspresi reguler yang membuang komentar juga menghapus garis miring ganda di dalam "https://example.com", dan yang membuang koma akhir juga menghapus koma di dalam "a, b,". Pemindai tahu byte mana yang berada di dalam string dan mana yang tidak, jadi kedua kesalahan itu tidak mungkin terjadi padanya.

Dokumen hasil perbaikan lalu divalidasi ulang sebelum ditawarkan, dan jika masih tidak sah, ia disajikan sebagai perbaikan sebagian dengan sisa kesalahan yang dirinci. Tombol bertuliskan «Sudah diperbaiki» yang mengembalikan sesuatu yang tetap gagal diurai lebih buruk daripada tidak ada tombol sama sekali.

  • Yang diperbaiki — Komentar, koma akhir, kutip tunggal dan tipografis, kunci tanpa kutip, angka heksadesimal, plus atau titik di depan, serta True, False, dan None milik Python.
  • Yang ditandai sebagai berkurang — NaN dan Infinity tidak punya ejaan JSON. Keduanya menjadi null, dan perubahan itu diumumkan alih-alih dilakukan diam-diam.
  • Terapkan atau unduh — Masukkan teks hasil perbaikan langsung kembali ke editor, atau unduh sebagai berkas .json.

Memvalidasi terhadap JSON Schema

Sintaks hanyalah separuh pertanyaan. «Apakah bentuknya benar?» adalah separuh lainnya, dan itulah yang dijawab JSON Schema. Tempel satu di panel dan dokumen diperiksa terhadapnya juga, dengan setiap kegagalan membawa JSON Pointer ke nilai yang bermasalah beserta barisnya.

Draft 2020-12 dan draft-07 sama-sama didukung, dan draft dibaca dari $schema — atau disimpulkan bila skema tidak menyatakannya, yang berlaku bagi hampir semua skema yang ditulis sebelum 2020. Kesimpulan itu penting: bentuk array dari items pada draft-07 berarti hal lain di 2020-12, dan membaca yang satu sebagai yang lain menghasilkan jawaban yang meyakinkan tetapi salah, bukan sebuah error.

  • Seluruh kosakata validasi — type, enum, const, batas numerik, panjang dan pola string, batasan array dan objek, required, serta kata kunci dependent.
  • Aplikator — allOf, anyOf, oneOf, not, if/then/else, prefixItems, contains, propertyNames, serta unevaluatedProperties dan unevaluatedItems.
  • Referensi — $ref, $defs, definitions, $anchor, dan cakupan $id diselesaikan di dalam skema yang Anda berikan. Referensi ke server lain dilaporkan namanya dan tidak pernah diunduh.
  • format, sebagaimana didefinisikan spesifikasi — Secara bawaan hanya anotasi, persis seperti kata kedua draft: skema dengan "format": "email" tidak menolak alamat yang salah kecuali Anda memintanya. Ada saklar bagi yang mengharapkan sebaliknya.

NDJSON dan JSON Lines

Satu nilai JSON per baris adalah cara pipeline log, ekspor BigQuery, body API massal, dan set pelatihan model ditulis. Dibaca sebagai satu dokumen JSON, berkas semacam itu menghasilkan tepat satu error — konten berlebih di awal baris dua — yang secara teknis benar dan sama sekali tidak berguna.

Mode NDJSON memvalidasi setiap rekaman sendiri-sendiri, sehingga kesalahan dilaporkan pada rekaman tempatnya berada. Mode ini ditawarkan otomatis saat berkas tampak berbasis baris, dan ditawarkan alih-alih diterapkan: alat yang diam-diam menafsir ulang masukan Anda adalah alat yang tidak bisa Anda nalar.

  • Hasil per rekaman — Setiap kesalahan membawa nomor rekamannya selain baris dan kolom, dan jumlah rekaman yang lolos dilaporkan di sampingnya.
  • Baris baru di akhir — Setiap penulis mengakhiri rekaman terakhir dengan baris baru. Baris kosong terakhir itu bukan rekaman, dan memperlakukannya sebagai rekaman menambahkan error palsu pada hampir semua berkas yang ditulis dengan benar.
  • Akhir baris Windows — Carriage return yang tertinggal di akhir rekaman jika tidak akan menjadi karakter kontrol di dalam token terakhirnya — satu error per baris pada berkas mana pun yang ditulis di Windows.
  • Rekaman kosong — Baris kosong di tengah dilaporkan, bukan dilewati. Format ini tidak punya pemisah, jadi baris kosong berarti sebuah rekaman ditulis kosong.

Enkode, tanda urutan byte, dan berkas yang bukan teks

Sebuah berkas bisa berupa JSON yang benar-benar sempurna dan tetap gagal karena tiga byte tak terlihat. Tanda urutan byte UTF-8 — yang ditulis Out-File PowerShell, StreamWriter .NET, dan ekspor «UTF-8» Excel — duduk di depan kurung kurawal pembuka, dan parser ketat melaporkan token tak terduga di posisi 0 untuk dokumen yang sebenarnya tanpa cela.

UTF-16 lebih buruk, karena itulah yang ditulis Windows PowerShell saat enkode tidak ditentukan sama sekali. Dibaca sebagai UTF-8 ia tampak seperti byte NUL setelah tiap karakter, dan errornya menunjuk ke sesuatu yang tak seorang pun bisa lihat. Keduanya dideteksi dan ditangani di sini, dan enkode yang dipakai dilaporkan agar tidak ada yang terjadi di belakang Anda.

  • UTF-8, dengan atau tanpa tanda — Tandanya dikenali, dilepas, dan dilaporkan. Dokumen divalidasi seolah tanda itu tidak pernah ada.
  • UTF-16, dengan atau tanpa tanda — Dideteksi dari tandanya, atau dari letak byte NUL — karakter struktural JSON semuanya ASCII, jadi polanya konklusif dan bukan tebakan.
  • Byte cacat — Byte yang bukan UTF-8 sah dilaporkan sebagai peringatan, bukan putusan: peramban menggantinya sebelum parser mana pun melihatnya, jadi ia tidak bisa membuat dokumen tidak sah — tetapi berarti berkasnya tidak berada dalam enkode yang diakuinya.
  • Sama sekali bukan teks — Gambar yang diganti nama menjadi .json ditolak dengan alasan itu, alih-alih menghasilkan error sintaks di posisi 0 untuk sesuatu yang tidak pernah berupa JSON.

Satu kali lintasan atas byte mentah, tanpa mengirim apa pun ke mana pun. Dokumen 22 MB diperiksa dalam sekitar 0,2 detik di laptop biasa — termasuk kunci ganda dan presisi angka — karena pemindainya tidak pernah membangun nilai yang sedang diperiksanya.

Apa yang Anda lihat

  • Valid — Putusan hijau dengan tipe akar dan ukuran, plus laporan struktur: total simpul, kedalaman maksimum, jumlah objek, array, dan kunci, ukuran dalam baris dan byte, serta enkode yang dipakai.
  • Tidak sah — Putusan merah dengan semua error dirinci — baris, kolom, JSON Pointer, penjelasan ringkas, dan penanda tepat di karakternya — plus tautan ke Format JSON.
  • Peringatan — Kunci ganda, angka yang kehilangan presisi, escape surrogate tanpa pasangan, dan penyarangan yang luar biasa dalam, masing-masing dengan lokasinya. Semuanya tidak mengubah putusan, karena parser akan menerimanya.
  • Dialek, bila ada — Jika teksnya JSON5, JSONC, atau dictionary Python yang sah, hal itu dinyatakan dengan jelas, beserta pilihan untuk mengonversinya.

Mengapa memvalidasi JSON?

JSON tidak sah merusak API, konfigurasi, dan pipeline data, dan biasanya merusaknya jauh dari tempat kesalahannya berada. Memeriksanya sebelum mengirim atau menyimpan menangkap salah ketik, koma yang hilang, koma akhir, dan karakter tanpa escape selagi berkasnya masih di depan Anda. Peringatannya lebih penting lagi: kunci ganda atau pengenal yang dibulatkan tidak menghasilkan error di mana pun, jadi lolos dari semua pengujian dan baru muncul sebagai data hilang berminggu-minggu kemudian. Semua pemeriksaan berjalan lokal, jadi data Anda tetap privat.

  • Tangkap error lebih awal — Temukan masalah sintaks sebelum merusak penerapan atau integrasi, dengan baris dan kolom persis alih-alih jejak tumpukan dari server.
  • Tangkap yang diam-diam — Kunci ganda dan hilangnya presisi lolos dari semua parser dan semua validator yang ada. Itulah kesalahan yang sampai ke produksi.
  • Periksa bentuknya, bukan hanya sintaksnya — JSON Schema mengubah «berhasil diurai» menjadi «sesuai yang diharapkan konsumen», sebelum konsumennya tahu.
  • Privasi — Tidak ada yang diunggah. Respons API privat, token akses, dan skema internal bisa diperiksa tanpa meninggalkan perangkat Anda.

Batasan, dan apa yang diubah Pro

Semua yang menentukan sah tidaknya sebuah dokumen bersifat gratis. Semua error alih-alih yang pertama, kunci ganda, peringatan presisi, JSON Schema, deteksi dialek, perbaikan, mode NDJSON, dan laporan struktur lengkap tersedia gratis. Pro menambah skala, bukan fitur.

  • Gratis — Satu berkas sekali jalan, hingga 25 MB, plus tempel tanpa batas. Semua pemeriksaan, semua peringatan, validasi skema, dan perbaikan termasuk.
  • Pro — Hingga 100 berkas dalam satu lintasan, ukuran dibatasi perangkat Anda dan bukan oleh kami, satu ZIP berisi laporan untuk seluruh batch, serta laporan JSON dan CSV yang bisa dibaca mesin untuk langkah CI atau tiket.
  • Mengapa 25 MB — Itu hasil pengukuran, bukan angka bulat. Dokumen 22 MB diperiksa dalam sekitar 0,2 detik, jadi batasnya berada di titik yang masih nyaman bagi ponsel kelas menengah.

Pertanyaan umum

Bagaimana cara kerja validasi JSON?

Validator menelusuri teks Anda mengikuti tata bahasa RFC 8259 / ECMA-404, satu kali lintasan atas byte mentah, tanpa pernah membangun nilainya. Jika lolos, Anda mendapat hasil valid beserta tipe akar, ukuran, dan struktur; jika tidak, Anda mendapat semua error sekaligus, bukan hanya yang pertama. Tempel teks atau seret berkas. Tidak ada yang diunggah.

Error apa saja yang terdeteksi?

Semua error sintaks JSON: koma yang hilang atau berlebih, kunci tanpa tanda kutip atau dengan kutip tunggal, kurung dan kurung kurawal yang tidak ditutup, karakter kontrol atau tanda kutip tanpa escape di dalam string, angka tidak sah, nol di depan, urutan escape yang salah, dan token liar. Komentar juga ditandai, karena JSON standar tidak mengizinkannya. Selain itu, alat ini melaporkan hal-hal yang sah secara JSON tetapi hampir tidak pernah disengaja: kunci ganda dan angka yang berubah nilai saat diurai.

Apakah ia menunjukkan lokasi error?

Ya, dan lokasinya sama di semua peramban. Kebanyakan validator online hanya meneruskan pesan JSON.parse bawaan peramban, dan pesan itu berbeda-beda: Safari tidak menyebut posisi sama sekali, Firefox menyebut baris dan kolom tetapi tanpa offset, dan hanya Chrome menyebut ketiganya. Alat ini menghitung sendiri lokasinya dari byte, jadi Anda mendapat baris, kolom, offset byte, dan penanda tepat di karakternya, apa pun peramban yang dipakai.

Mengapa semua error ditampilkan dan tidak berhenti di yang pertama?

Karena berkas dengan empat puluh kesalahan tidak seharusnya memakan empat puluh putaran. Parser biasa melempar pengecualian pada kesalahan pertama dan tidak punya tempat untuk melanjutkan. Yang ini mencatat kesalahannya lalu menyelaraskan diri kembali, jadi satu lintasan memberi Anda daftar lengkapnya. Pencatatan berhenti di seribu temuan, jauh melewati titik di mana sebuah berkas masih layak diperbaiki manual.

Apa itu kunci ganda, dan mengapa penting?

JSON mengizinkan kunci yang sama dua kali dalam satu objek, dan spesifikasinya tidak menyatakan apa yang harus dilakukan parser. Praktiknya, semua parser arus utama menyimpan yang terakhir dan membuang yang pertama tanpa sepatah kata: {"a":1,"a":2} menjadi {"a":2} dan separuh data Anda hilang tanpa error apa pun. Validator ini melaporkan setiap duplikat dengan JSON Pointer. Nyaris tidak ada validator online lain yang memeriksanya.

Apa maksud «angka ini kehilangan presisi»?

Angka JSON tidak dibatasi ukurannya, tetapi hampir semua parser membacanya sebagai bilangan pecahan 64 bit. Di atas 9.007.199.254.740.991 sebuah bilangan bulat tidak lagi bisa disimpan persis, jadi 12345678901234567890 kembali sebagai 12345678901234567000 — tanpa error, sekadar angka yang berbeda. Hal yang sama terjadi pada desimal panjang, dan 1e400 menjadi Infinity, yang bahkan tidak bisa diwakili JSON. ID Snowflake, nomor pesanan, dan nilai keuangan paling sering terkena. Validator menandai setiap literal yang terpengaruh dan menampilkan nilai persisnya berdampingan dengan nilai hasil urai.

Bisakah memvalidasi terhadap JSON Schema?

Bisa. Tempel skema di panel dan dokumen akan diperiksa terhadapnya juga. Draft 2020-12 dan draft-07 didukung, dan draft dibaca dari $schema atau disimpulkan bila skema tidak menyatakannya. Error disertai JSON Pointer ke nilai yang gagal beserta barisnya. Referensi diselesaikan di dalam skema yang Anda berikan; $ref ke server lain dilaporkan alih-alih diunduh, karena mengunduhnya berarti membawa skema Anda keluar dari perangkat Anda.

Berkas saya punya komentar dan koma akhir. Apakah rusak?

Tidak — itu JSONC atau JSON5, dan begitulah tsconfig.json, .eslintrc, serta sebagian besar berkas pengaturan editor ditulis. JSON standar tidak pernah mengizinkan komentar atau koma akhir, itulah sebabnya berkasnya jalan di editor Anda dan gagal di pipeline Anda. Validator menyebut nama dialeknya alih-alih menyatakan berkas Anda rusak, merinci konstruksi mana yang terlibat, dan menawarkan salinan yang sudah dikonversi ke JSON ketat.

Apakah mendukung NDJSON, JSON Lines, dan berkas log?

Ya. Satu nilai JSON per baris adalah format yang dipakai pipeline log, ekspor BigQuery, dan body API massal; dibaca sebagai satu dokumen, berkas semacam itu menghasilkan tepat satu error tak berguna tentang konten berlebih di baris 2. Beralihlah ke mode NDJSON — atau terima tawarannya, yang muncul sendiri saat berkas tampak berbasis baris — dan setiap rekaman divalidasi terpisah, dengan tiap kesalahan dikaitkan ke nomor rekamannya.

Bagaimana kalau berkas saya memakai enkode lain?

Tetap dibaca, dan Anda diberi tahu. Tanda urutan byte UTF-8 di depan kurung kurawal pembuka membuat JSON.parse gagal di posisi 0 pada berkas yang sebenarnya sempurna, dan berkas UTF-16 — yang ditulis Windows PowerShell secara bawaan — tampak seperti ada NUL setelah tiap karakter. Keduanya dideteksi dan ditangani. Berkas yang sama sekali bukan teks, misalnya gambar yang diganti nama menjadi .json, ditolak dengan alasan itu alih-alih dilaporkan sebagai error sintaks.

Apakah data JSON saya aman?

Ya. Semuanya berjalan di perangkat Anda dan tidak ada yang diunggah, jadi Anda bisa dengan aman memeriksa respons API privat, token akses, skema internal, dan berkas konfigurasi. Alat ini tetap bekerja tanpa jaringan setelah halaman dimuat, dan Anda bisa membuktikannya sendiri.

Standar apa yang diikuti, dan apakah gratis?

Ia memvalidasi terhadap standar JSON resmi, RFC 8259 / ECMA-404 — aturan yang sama dipakai server dan pustaka — sehingga lolos di sini berarti kompatibilitas luas. Semua yang menentukan sah tidaknya sebuah dokumen bersifat gratis: semua error, kunci ganda, peringatan presisi, JSON Schema, NDJSON, dan perbaikan. Ia berjalan di desktop maupun ponsel, dan Pro hanya menambah skala: berkas lebih besar, batch hingga 100, dan laporan yang bisa dibaca mesin.

4.8dari 5

dari 98 penilaian

Beri nilai alat ini

Ketuk bintang — hanya sebentar