Какие символы допустимы / недопустимы в имени ключа JSON?
существуют ли запрещенные символы в именах ключей, для объектов JavaScript или строк JSON? Или символы, которые нужно экранировать?
чтобы быть более конкретным, я хотел бы использовать "$", "-" и пробел в ключевых именах.
4 ответов
нет. Любая допустимая строка является допустимым ключом. Он даже может иметь "
пока вы избегаете его:
{"The \"meaning\" of life":42}
возможно, вы столкнетесь с трудностями при загрузке таких значений на некоторые языки, которые пытаются связать ключи с именами полей объектов. Я не знаю таких случаев.
следующие символы должны быть экранированы в данных JSON, чтобы избежать каких-либо проблем
‘ одинарная кавычка
" цитата
\ обратная косая черта
все управляющие символы, такие как \n \t
JSON Parser может помочь вам справиться с JSON.
Unicode codepoints U+D800 до U+DFFF следует избегать: они недействительным в Unicode, потому что они зарезервированы для суррогатных пар UTF-16. Некоторые кодеры/декодеры JSON заменят их U+FFFD. См., например,как язык Go и его библиотека JSON имеют дело с ними.
чтобы избежать "\uD800" на "\uDFFF" (не в суррогатные пары).
стоит отметить, что при запуске Ключей с номерами это может вызвать некоторые непреднамеренные проблемы.
IE:
var testObject = {
"1tile": "test value"
};
console.log(testObject.1tile); // fails, invalid syntax
console.log(testObject["1tile"]; // workaround