Ya que se puede poner "parent.child" separada por puntos y se no tiene que poner parent ["child"] que también sea válido y útil, yo diría que ambas maneras son técnicamente aceptables. Todos los analizadores deberían hacer las dos cosas bien. Si su analizador no necesita comillas en las teclas, entonces es mejor no ponerlas (ahorra espacio). Tiene sentido llamarlos cuerdas porque eso es lo que son, y dado que los corchetes le dan la capacidad de usar valores para las teclas, tiene perfecto sentido no hacerlo. En JSON se puede poner ...
>var keyName = "someKey";
>var obj = {[keyName]:"someValue"};
>obj
Object {someKey: "someValue"}
muy bien sin problemas, si necesita un valor para una clave y ninguno citado no va a funcionar, así que si no lo hace, no se puede, por lo no lo hará "no necesita cotizaciones en las llaves". Incluso si es correcto decir que técnicamente son cadenas. La lógica y el uso discuten lo contrario. Tampoco emite oficialmente Objeto {"someKey": "someValue"} para obj en nuestro ejemplo ejecutado desde la consola de cualquier navegador.
Las comillas no son más simples en muchas situaciones, como los archivos de configuración que se editan a mano. Lo desafortunado de que JSON se use (y se use incorrectamente) como un formato de intercambio casi universal es que tiene características específicas de Javascript. – miguel
Motivo real: marque esta respuesta también - http://stackoverflow.com/questions/4201441/es-es-en-cualquier- práctica-razón-a-utilizar-cadenas-contributos-para-json-keys – TechMaze