Puisque vous pouvez mettre « parent.child » notation en pointillé et vous Je n'ai pas à mettre parent ["enfant"] qui est aussi valide et utile, je dirais que les deux façons sont techniquement acceptables. Les parseurs devraient tous faire les deux manières. Si votre analyseur n'a pas besoin de guillemets sur les clés, il est probablement préférable de ne pas les mettre (économise de l'espace). Il est logique de les appeler des chaînes parce que c'est ce qu'elles sont, et puisque les crochets vous donne la possibilité d'utiliser des valeurs pour les clés, il est fondamentalement logique de ne pas le faire. JSON vous pouvez mettre ...
>var keyName = "someKey";
>var obj = {[keyName]:"someValue"};
>obj
Object {someKey: "someValue"}
très bien sans problème, si vous avez besoin d'une valeur pour une clé et aucune cité ne fonctionnera pas, si elle n'a pas, vous ne pouvez pas, donc vous ne serez pas si "vous n'avez pas besoin de citations sur les clés". Même si c'est juste de dire qu'ils sont techniquement des cordes. La logique et l'usage arguent du contraire. Il ne sort pas non plus officiellement Object {"someKey": "someValue"} pour obj dans notre exemple exécuté à partir de la console de n'importe quel navigateur.
Les guillemets ne sont pas plus simples dans de nombreuses situations, tels que les fichiers de configuration édités à la main. La chose malheureuse à propos de JSON utilisé (et mal utilisé) comme un format d'échange presque universel est qu'il a des caractéristiques spécifiques à Javascript. – miguel
Véritable raison - vérifiez cette réponse aussi - http://stackoverflow.com/questions/4201441/is-there-any-practical-reason-to-use-quoted-strings-for-json-keys – TechMaze