Apakah ada karakter terlarang dalam nama kunci, untuk objek JavaScript atau string JSON? Atau karakter yang perlu diloloskan?
Untuk lebih spesifik, saya ingin menggunakan "$", "-" dan spasi dalam nama-nama utama.
javascript
json
object
key
Christophe
sumber
sumber
obj['whatever']
notasi. Tetapi hanya kunci alfanumerik biasa yang dapat digunakan untukobj.whatever
versi ini.Jawaban:
Tidak. String apa pun yang valid adalah kunci yang valid. Ia bahkan dapat memiliki
"
selama Anda menghindarinya:Mungkin ada kemungkinan Anda akan menemui kesulitan memuat nilai-nilai tersebut ke beberapa bahasa, yang mencoba mengaitkan kunci dengan nama bidang objek. Saya tidak tahu ada kasus seperti itu.
sumber
\u four-hex-digits
bentuk).Karakter berikut harus melarikan diri dalam data JSON untuk menghindari masalah
Parser JSON dapat membantu Anda untuk berurusan dengan JSON.
EDIT: Ini adalah parser JSON pengganti karena tautan OP sudah mati
sumber
{ "singlequotetest": "something here isn\'t right"}
versus{ "singlequotetest": "Fixing here what wasn't right"}
{"🐶🔫": "not nice, but still valid json"}
Perlu disebutkan bahwa saat memulai kunci dengan angka valid, itu dapat menyebabkan beberapa masalah yang tidak diinginkan.
Contoh:
sumber
Unicode codepoints U + D800 ke U + DFFF harus dihindari: mereka tidak valid di Unicode karena mereka dicadangkan untuk pasangan pengganti UTF-16. Beberapa encoders / decoder JSON akan menggantinya dengan U + FFFD. Lihat misalnya bagaimana bahasa Go dan perpustakaan JSON-nya berurusan dengan mereka .
Jadi hindari "\ uD800" menjadi "\ uDFFF" saja (bukan dalam pasangan pengganti).
sumber