Como puede poner la notación punteada "parent.child" y no tiene que poner parent ["child"], que también es válido y útil, yo diría que ambas formas son técnicamente aceptables. Todos los analizadores deberían hacer ambas cosas bien. Si su analizador no necesita comillas en las claves, entonces probablemente sea mejor no ponerlas (ahorra espacio). Tiene sentido llamarlos cadenas porque eso es lo que son, y dado que los corchetes le dan la capacidad de usar valores para las teclas, esencialmente tiene mucho sentido no hacerlo. En Json puedes poner ...
>var keyName = "someKey";
>var obj = {[keyName]:"someValue"};
>obj
Object {someKey: "someValue"}
bien sin problemas, si necesita un valor para una clave y ninguno entre comillas no funcionará, por lo que si no lo hace, no puede, por lo que no lo hará "no necesita comillas en las claves". Incluso si es correcto decir que técnicamente son cadenas. La lógica y el uso argumentan lo contrario. Tampoco muestra oficialmente Object {"someKey": "someValue"} para obj en nuestro ejemplo ejecutado desde la consola de cualquier navegador.