Y a-t-il des caractères interdits dans les noms de clé, pour les objets JavaScript ou les chaînes JSON? Ou des personnages qui doivent être échappés?
Pour être plus précis, j'aimerais utiliser "$", "-" et un espace dans les noms de clé.
javascript
json
object
key
Christophe
la source
la source
obj['whatever']
notation. Mais seules les touches alphanumériques ordinaires peuvent être utilisées pour laobj.whatever
version.Réponses:
Non. Toute chaîne valide est une clé valide. Cela peut même durer
"
tant que vous y échappez:Il y a peut-être une chance que vous rencontriez des difficultés pour charger de telles valeurs dans certaines langues, qui essaient d'associer des clés à des noms de champs d'objet. Cependant, je ne connais aucun cas de ce genre.
la source
\u four-hex-digits
forme).Les caractères suivants doivent être échappés dans les données JSON pour éviter tout problème
JSON Parser peut vous aider à gérer JSON.
EDIT: Voici un analyseur JSON de remplacement puisque le lien d'OP est mort
la source
{ "singlequotetest": "something here isn\'t right"}
versus{ "singlequotetest": "Fixing here what wasn't right"}
{"🐶🔫": "not nice, but still valid json"}
Il est à noter que si le démarrage des clés avec des nombres est valide, cela peut entraîner des problèmes involontaires.
Exemple:
la source
Les points de code Unicode U + D800 à U + DFFF doivent être évités: ils ne sont pas valides en Unicode car ils sont réservés aux paires de substitution UTF-16. Certains encodeurs / décodeurs JSON les remplaceront par U + FFFD. Voyez par exemple comment le langage Go et sa bibliothèque JSON les traitent .
Évitez donc "\ uD800" à "\ uDFFF" seul (pas dans des paires de substitution).
la source