javascript - Bir JSON anahtar adında hangi karakterler geçerli/geçersizdir?
JavaScript nesneleri veya JSON dizeleri için anahtar isimlerinde yasaklı karakterler var mı? Veya kaçırılması gereken karakterler var mı?
Daha spesifik olmak gerekirse, anahtar isimlerinde "$", "-" ve boşluk kullanmak istiyorum.
Cevap #1
Hayır. Geçerli herhangi bir dize geçerli bir anahtardır. Hatta kaçış karakteri kullanıldığı sürece " bile içerebilir:
{"The \"meaning\" of life":42}
Böyle değerleri, anahtarları nesne alan adlarıyla ilişkilendirmeye çalışan bazı dillere yüklemekte zorluklarla karşılaşma ihtimaliniz belki vardır. Ancak, böyle bir durumu bilen biri değilim.
Cevap #2
JSON verilerinde herhangi bir sorun yaşamamak için aşağıdaki karakterlerin kaçış karakteri ile yazılması gerekir:
"(çift tırnak)\(ters eğik çizgi)- tüm kontrol karakterleri gibi
\n,\t
JSON Ayrıştırıcı, JSON ile başa çıkmanıza yardımcı olabilir.
Cevap #3
Sayılarla başlayan anahtarlar geçerli olsa da, bazı istem dışı sorunlara yol açabileceğini belirtmek gerekir.
Örnek :
var testObject = {
"1tile": "test value"
};
console.log(testObject.1tile); // fails, invalid syntax
console.log(testObject["1tile"]; // workaround
Cevap #4
Unicode kod noktaları U+D800 ile U+DFFF arasından kaçınılmalıdır: bunlar UTF-16 vekil çiftleri için ayrılmış olduklarından Unicode'da geçersizdir. Bazı JSON kodlayıcıları/çözücüleri bunları U+FFFD ile değiştirecektir. Örneğin, Go dilinin ve onun JSON kütüphanesinin bunlarla nasıl başa çıktığını inceleyin.
Yani yalnız başına (yerine ikili eşler içinde olmayan) "\uD800" ile "\uDFFF" arasında kalmaktan kaçının.
