Есть ли запрещенные символы в именах ключей, для объектов JavaScript или строк JSON? Или символы, которые нужно экранировать?
Чтобы быть более конкретным, я бы хотел использовать «$», «-» и пробел в именах ключей.
javascript
json
object
key
Christophe
источник
источник
obj['whatever']
нотацию. Но только обычные буквенно-цифровые клавиши могут быть использованы дляobj.whatever
версии.Ответы:
Нет. Любая допустимая строка является допустимым ключом. Это может даже произойти,
"
пока вы избежите этого:Возможно, у вас возникнут трудности с загрузкой таких значений в некоторые языки, которые пытаются связать ключи с именами полей объекта. Однако я не знаю ни одного подобного случая.
источник
\u four-hex-digits
форме).Следующие символы должны быть экранированы в данных JSON, чтобы избежать каких-либо проблем
JSON Parser может помочь вам разобраться с JSON.
РЕДАКТИРОВАТЬ: Вот замена парсера JSON, так как ссылка OP не работает
источник
{ "singlequotetest": "something here isn\'t right"}
против{ "singlequotetest": "Fixing here what wasn't right"}
{"🐶🔫": "not nice, but still valid json"}
Стоит отметить, что хотя запуск ключей с номерами действителен, это может вызвать некоторые непреднамеренные проблемы.
Пример:
источник
Следует избегать кодовых точек Unicode от U + D800 до U + DFFF: они недопустимы в Unicode, потому что они зарезервированы для суррогатных пар UTF-16. Некоторые JSON-кодеры / декодеры заменят их на U + FFFD. Посмотрите, например, как с ними работает язык Go и его библиотека JSON .
Поэтому избегайте "\ uD800" до "\ uDFFF" в одиночку (не в суррогатных парах).
источник