Dal momento che si può mettere "parent.child" notazione a punti e si non devo mettere un genitore ["figlio"] che sia anche valido e utile, direi che entrambi i modi sono tecnicamente accettabili. Tutti gli analizzatori dovrebbero fare entrambe le cose bene. Se il tuo parser non ha bisogno di virgolette sulle chiavi, probabilmente è meglio non metterle (risparmia spazio). Ha senso chiamarli stringhe perché è quello che sono, e dal momento che le parentesi quadre ti danno la possibilità di usare i valori per le chiavi in sostanza ha perfettamente senso non farlo. in JSON si può mettere ...
>var keyName = "someKey";
>var obj = {[keyName]:"someValue"};
>obj
Object {someKey: "someValue"}
bene senza problemi, se avete bisogno di un valore per una chiave e nessuno citato non funziona, quindi se non lo fa, non si può così, non sarà così "non hai bisogno di virgolette sulle chiavi". Anche se è giusto dire che sono tecnicamente stringhe. La logica e l'uso argomentano diversamente. Né esce ufficialmente Object {"someKey": "someValue"} per obj nel nostro esempio viene eseguito dalla console di qualsiasi browser.
fonte
2016-01-31 01:55:48
Le virgolette non sono più semplici in molte situazioni, come i file di configurazione modificati a mano. La sfortunata cosa in cui JSON viene usato (e usato male) come formato di scambio quasi universale è che ha caratteristiche specifiche per Javascript. – miguel
Vero motivo: controlla anche questa risposta: http://stackoverflow.com/questions/4201441/is-there-any-practical-reason-to-use-quot-strings-for-json-keys – TechMaze