Existe-t-il des caractères interdits dans les noms de clé, pour les objets JavaScript ou les chaînes JSON? Ou des personnages à échapper?
Pour être plus précis, j'aimerais utiliser "$", "-" et l'espace dans les noms de clé.
Non. Toute chaîne valide est une clé valide. Il peut même avoir "
tant que vous y échappez:
{"The \"meaning\" of life":42}
Vous rencontrerez peut-être des difficultés pour charger de telles valeurs dans certaines langues, qui tentent d'associer des clés à des noms de champs d'objet. Je ne connais pas de tels cas, cependant.
Les caractères suivants doivent être échappés dans les données JSON pour éviter tout problème
' simple citation
" citation
\ backslash
tous les caractères de contrôle comme\n\t
JSON Parser peut vous aider à gérer JSON.
EDIT: Voici un analyseur JSON de remplacement car le lien entre OP est mort
Il est à noter que bien que le démarrage des clés avec des chiffres soit valide, il peut entraîner des problèmes inattendus.
C'EST À DIRE:
var testObject = {
"1tile": "test value"
};
console.log(testObject.1tile); // fails, invalid syntax
console.log(testObject["1tile"]; // workaround
Les points de code Unicode U + D800 à U + DFFF doivent être évités: ils sont invalides en Unicode car ils sont réservés aux paires de substitution UTF-16. Certains encodeurs/décodeurs JSON les remplaceront par U + FFFD. Voir par exemple comment le langage Go et sa bibliothèque JSON les traitent .
Donc, évitez "\ uD800" à "\ uDFFF" seul (pas par paires de substitution).