Existem caracteres proibidos nos nomes das chaves, para objetos JavaScript ou cadeias JSON? Ou personagens que precisam ser escapados?
Para ser mais específico, eu gostaria de usar "$", "-" e espaço nos nomes das chaves.
javascript
json
object
key
Christophe
fonte
fonte
obj['whatever']
notação. Mas apenas chaves alfanuméricas comuns podem ser usadas para aobj.whatever
versão.Respostas:
Não. Qualquer sequência válida é uma chave válida. Pode até ter
"
, desde que você escape:Talvez haja uma chance de você encontrar dificuldades ao carregar esses valores em alguns idiomas, que tentam associar chaves a nomes de campos de objetos. Eu não conheço nenhum desses casos, no entanto.
fonte
\u four-hex-digits
formato).Os caracteres a seguir devem ser escapados nos dados JSON para evitar problemas
O Analisador JSON pode ajudá-lo a lidar com o JSON.
EDIT: Aqui está um analisador JSON de substituição, pois o link do OP está inoperante
fonte
{ "singlequotetest": "something here isn\'t right"}
versus{ "singlequotetest": "Fixing here what wasn't right"}
{"🐶🔫": "not nice, but still valid json"}
Vale ressaltar que, embora o início das chaves com números seja válido, isso pode causar alguns problemas não intencionais.
Exemplo:
fonte
Os pontos de código Unicode U + D800 a U + DFFF devem ser evitados: eles são inválidos no Unicode porque são reservados para pares substitutos UTF-16. Alguns codificadores / decodificadores JSON os substituirão por U + FFFD. Veja, por exemplo, como a linguagem Go e sua biblioteca JSON lida com eles .
Portanto, evite "\ uD800" para "\ uDFFF" sozinho (não em pares substitutos).
fonte