UTILS.
100% di peramban
{ }

Objek JS ke JSON Ketat

Perbaiki literal objek JavaScript longgar — kunci tanpa kutip, kutip tunggal, koma di akhir, komentar — menjadi JSON valid yang ketat, tanpa eval.

— keluaran muncul di sini —

Tentang alat ini

Alat Objek JS ke JSON Ketat memperbaiki literal objek gaya JavaScript atau JSON5 yang longgar menjadi JSON yang ketat dan valid. Ia dibangun di atas tokenizer yang ditulis tangan — ia tidak pernah menggunakan eval atau new Function — sehingga aman di bawah Content Security Policy yang ketat dan aman untuk menempel teks tak tepercaya. Semuanya berjalan di browser Anda.

Ia menerima hal-hal yang ditolak JSON sungguhan: kunci pengidentifikasi tanpa kutip, string berkutip tunggal, koma di akhir sebelum ] atau }, komentar baris // dan blok /* */, literal heksadesimal (0xFF), oktal dan biner, angka berawalan plus dan berawalan titik (+1, .5), serta nilai undefined, NaN, dan Infinity. Kunci dikutip ulang dengan tanda kutip ganda, string di-escape ulang dengan benar, komentar dan koma di akhir dihapus, dan angka dinormalisasi menjadi angka JSON biasa. Anda memilih cara memperlakukan undefined (konversi ke null atau hapus kunci) dan angka non-berhingga (konversi ke null atau munculkan kesalahan), lalu nilai diserialisasi ulang dengan JSON.stringify pada indentasi pilihan Anda — 2 spasi, 4 spasi, tab, atau diminifikasi.

Ketika input tidak dapat di-parsing, alat melaporkan kesalahan sintaks pertama beserta baris dan kolomnya sehingga Anda dapat menemukan masalah dengan cepat. Ini melengkapi formatter JSON ketat, yang hanya menolak input longgar — di sini tujuannya adalah menyelamatkan output konsol yang disalin, cuplikan konfigurasi, dan objek yang diedit manual menjadi JSON yang akan diterima parser mana pun.

Pertanyaan yang sering diajukan

Sintaks longgar apa yang diterima?
Kunci tanpa kutip, string berkutip tunggal, koma di akhir, komentar // dan /* */, angka heks/oktal/biner, angka berawalan plus dan berawalan titik, serta literal undefined, NaN, dan Infinity — hal-hal umum yang membuat objek JS yang disalin tidak valid sebagai JSON.
Apakah menggunakan eval untuk mem-parsing?
Tidak. Ia menggunakan tokenizer yang ditulis tangan dan parser recursive-descent, tidak pernah eval atau new Function, sehingga bekerja di bawah Content Security Policy yang ketat dan aman untuk input tak tepercaya. Ia hanya menghasilkan data, tidak pernah menjalankan kode.
Bagaimana undefined, NaN, dan Infinity ditangani?
JSON tidak memiliki nilai-nilai tersebut. Anda memilih: undefined bisa menjadi null atau kuncinya dihapus, dan NaN/Infinity bisa menjadi null atau memunculkan kesalahan. Ini menjaga output tetap valid secara ketat dengan cara mana pun.
Apa yang terjadi ketika input tidak valid?
Parser berhenti pada kesalahan sintaks asli pertama dan melaporkannya beserta baris dan kolom tempat terjadinya, sehingga Anda dapat menemukan dan memperbaiki karakter yang bermasalah alih-alih menebak.

Alat lainnya