JavaScriptオブジェクトまたはJSON文字列のキー名に禁止文字はありますか?またはエスケープする必要のある文字は?
具体的には、キー名に「$」、「-」、およびスペースを使用します。
いいえ。有効な文字列はすべて有効なキーです。エスケープする限り、"
を持つこともできます。
{"The \"meaning\" of life":42}
おそらく、キーをオブジェクトフィールド名に関連付けようとするいくつかの言語にそのような値をロードする際に問題が発生する可能性があります。ただし、このようなケースは知りません。
問題を回避するには、JSONデータで次の文字をエスケープする必要があります
’一重引用符
" 見積もり
\バックスラッシュ
\ n\tのようなすべての制御文字
JSON Parser は、JSONの処理に役立ちます。
キーを数字で開始することは有効ですが、意図しない問題が発生する可能性があることに言及する価値があります。
IE:
var testObject = {
"1tile": "test value"
};
console.log(testObject.1tile); // fails, invalid syntax
console.log(testObject["1tile"]; // workaround
UnicodeコードポイントU + D800からU + DFFFは避ける必要があります。これらはUTF-16サロゲートペア用に予約されているため、Unicodeでは invalid です。一部のJSONエンコーダー/デコーダーは、それらをU + FFFDに置き換えます。たとえば、 Go言語とそのJSONライブラリがそれらを処理する方法 を参照してください。
そのため、「\ uD800」から「\ uDFFF」のみ(サロゲートペアではない)を避けてください。