JSON mengizinkan empat karakter spasi sintaks
RFC 8259 mengizinkan U+0020, tab U+0009, baris baru U+000A dan carriage return U+000D. NBSP U+00A0 tidak termasuk. formatJSON menerima spasi biasa setelah titik dua, tetapi menolak NBSP. \u adalah escape string JavaScript yang membuat karakter saat dijalankan.
formatJSON('{"n":\u00201}'); // accepted
formatJSON('{"n":\u00A01}'); // throwsNBSP di dalam string adalah data
Di antara tanda kutip ganda, NBSP valid pada contoh ini. Format dan minifikasi mempertahankannya. Mengganti seluruh sumber mengubah titik kode antara A dan B dari 160 menjadi 32. Jangan sembarang mengganti spasi data saat memperbaiki sintaks.
const source = '{"text":"A\u00A0B"}';
JSON.parse(formatJSON(source, 0).output).text.codePointAt(1) // 160
JSON.parse(source.replaceAll("\u00A0", " ")).text.codePointAt(1) // 32Periksa baris, kolom dan kontrol menuju kesalahan. Simpan sumber asli, ketik ulang spasi tidak valid di luar string lalu validasi. Tidak ada deteksi NBSP khusus atau perbaikan otomatis. Validasi sintaks tidak memvalidasi skema API.
Pertanyaan yang Sering Diajukan
Apakah minifikasi memperbaiki spasi tidak valid?
Tidak. formatJSON memeriksa sintaks sebelum keluaran, sehingga NBSP di luar string juga ditolak saat minifikasi. Di dalam string, NBSP tetap ada.