哪些字符在JSON密钥名称中有效/无效?
在JavaScript对象或JSONstring的键名中是否有禁止使用的字符? 还是需要逃避的angular色?
更具体地说,我想使用“$”,“ – ”和空格键名称。
不,任何有效的string都是有效的密钥。 它甚至可以"
只要你逃脱它:
{"The \"meaning\" of life":42}
将这些值加载到某些语言中可能会遇到困难,这些语言尝试将键与对象字段名称相关联。 但是,我不知道有这样的情况。
以下字符必须在JSON数据中转义以避免任何问题
'单引号
“报价
\反斜杠
所有控制字符如\ n \ t
JSONparsing器可以帮助您处理JSON。
编辑: 这是一个替代的JSONparsing器,因为OP的链接已经死了
必须避免Unicode码点U + D800到U + DFFF:它们在Unicode中是无效的 ,因为它们是为UTF-16替代对保留的。 一些JSON编码器/解码器将用U + FFFDreplace它们。 例如,请参阅Go语言及其JSON库如何处理它们 。
所以请避免将“\ uD800”单独设置为“\ uDFFF”(不在代理对中)。
值得一提的是,用数字开始键是有效的,这可能会导致一些意想不到的问题。
IE:
var testObject = { "1tile": "test value" }; console.log(testObject.1tile); // fails, invalid syntax console.log(testObject["1tile"]; // workaround