Cara menggunakannya
- Tampal JSON anda ke dalam kotak, buka fail, atau tekan “Cuba contoh” untuk melihat laporan ralat.
- Baca hasilnya: mesej hijau untuk JSON yang sah, atau ralat pertama dengan baris, lajur dan penanda di bawah masalah.
- Betulkan ralat yang diterangkan oleh petunjuk dan semak semula; hasilnya dikemas kini semasa anda menaip.
- Untuk JSON yang sah, baca statistik: jenis akar, bilangan kunci, kedalaman sarang dan saiz dalam bait.
Cara ia berfungsi
Pengesah menyemak sintaks mengikut piawaian JSON (RFC 8259 / ECMA-404) menggunakan penghurai JSON terbina dalam pelayar, jadi dokumen yang lulus di sini diterima oleh JSON.parse JavaScript dan oleh penghurai yang mematuhi piawaian dalam bahasa lain. Apabila penghuraian gagal, penyemak ketat yang ditulis untuk alat ini meneliti teks sekali untuk mencari ralat pertama serta baris dan lajur tepatnya, kemudian menunjukkan baris itu dengan penanda ^ di bawah masalah.
Petunjuk ini menumpukan kepada kesilapan yang biasa dilakukan orang apabila JSON ditulis secara manual atau disalin daripada JavaScript: koma selepas item terakhir, rentetan bertanda petik tunggal, kunci tanpa tanda petik, komen // atau /* */, nilai seperti NaN, Infinity atau undefined, pemisah baris mentah dalam rentetan, dan dua dokumen JSON yang ditampal berturut-turut (seperti dalam fail JSON Lines). Hanya ralat pertama dilaporkan, kerana satu kesilapan sering mengelirukan semua yang selepasnya.
Alat ini menyemak sintaks sahaja. Ia tidak mengesahkan terhadap JSON Schema, jadi ia tidak dapat memberitahu anda sama ada medan yang diperlukan tiada. Ia juga tidak memberi amaran tentang kunci pendua: piawaian membenarkannya, dan kebanyakan penghurai mengekalkan nilai terakhir. Statistik mengira kunci dalam setiap objek pada setiap peringkat; kedalaman ialah 1 untuk objek atau tatasusunan rata dan bertambah satu bagi setiap peringkat pensarangan.
Contoh
Konfigurasi disalin daripada JavaScript
{name: 'demo', debug: true,} gagal pada baris 1, lajur 2 dengan mesej “Kunci objek mesti dalam tanda petik dua”. Selepas kunci itu diletakkan dalam tanda petik dua, semakan seterusnya merujuk kepada rentetan bertanda petik satu, kemudian kepada koma di hujung.
Fail log dengan satu objek setiap baris
Menampal dua baris seperti {"id":1} dan {"id":2} melaporkan “lebih banyak kandungan selepas akhir nilai JSON” pada baris 2. Setiap baris ialah JSON yang sah secara berasingan (JSON Lines), tetapi bersama-sama ia perlu dibalut dalam [ ] dan dipisahkan dengan koma.
Menyemak muatan API
Respons 2 MB disahkan dalam sekelip mata dan menunjukkan Jenis akar: Array, 1,500 item peringkat atas dan kedalaman sarang 4, iaitu pemeriksaan pantas sebelum menulis kod yang menggunakannya.
Soalan Lazim
Adakah alat ini mengesahkan berdasarkan JSON Schema?
Tidak. Ia menyemak bahawa teks itu JSON yang terbentuk dengan betul. Menyemak medan yang diperlukan, jenis atau format memerlukan pengesah JSON Schema, yang tidak disertakan dalam alat ini.
Mengapa hanya satu ralat dipaparkan?
Selepas ralat sintaks pertama, penghurai tidak dapat mengetahui maksud penulis, jadi “ralat” selepas itu selalunya kesan sampingan daripada ralat pertama. Betulkan masalah yang dilaporkan dan ralat seterusnya, jika ada, akan muncul serta-merta.
Adakah komen atau koma di hujung pernah sah?
Tidak dalam JSON. Format seperti JSON5 dan JSONC (digunakan oleh fail tetapan sesetengah editor) membenarkannya, tetapi penghurai JSON standard menolaknya, jadi ia dilaporkan sebagai ralat di sini.
Adakah nilai tunggal seperti 42 atau "hello" JSON yang sah?
Ya. Sejak RFC 7159, sebarang nilai JSON boleh menjadi akar, bukan hanya objek dan tatasusunan. Sesetengah alat dan API lama masih menjangkakan objek atau tatasusunan pada peringkat atas.
Mengapa lajur berbeza daripada lajur dalam editor saya?
Lajur dikira dalam unit kod UTF-16, iaitu cara JavaScript mengira panjang rentetan. Emoji dan sesetengah aksara jarang dikira sebagai dua, dan satu tab dikira sebagai satu lajur, manakala editor mungkin memaparkannya lebih lebar.
Privasi
Pengesahan dijalankan sepenuhnya dalam pelayar anda. JSON yang anda tampal atau buka tidak dimuat naik, disimpan atau disertakan dalam analitik.