JSON è un formato di scambio / serializzazione dei dati. Non è un codice destinato a essere scritto dagli umani, ma la capacità di lettura umana è importante. Dati questi requisiti, JSON è il sottoinsieme più semplice di JavaScript che potrebbe funzionare.
Ad esempio, dobbiamo consentire le chiavi quotate negli oggetti. Ma se abbiamo già una sintassi quotata, non è necessario supportare anche chiavi non quotate. Allo stesso modo, JSON conosce solo "..."
doppie stringhe tra virgolette, le stringhe con quotatura singola '...'
non esistono.
Il risultato è che è davvero facile implementare un parser JSON (forse 20 righe con un buon generatore di parser). Non vorremmo buttar via quel vantaggio (che ha aiutato a diventare JSON così accettato. Contrasto con la complessità dell'analisi XML). Naturalmente, un'implementazione pronta per la produzione dovrebbe essere clemente in ciò che accetta.
Un cambiamento di questo tipo potrebbe essere adattato allo standard? No, perché la compatibilità all'indietro. Sentiti libero di scrivere un'implementazione JSON che accetta chiavi non quotate, ma non puoi mai emettere tale stringa, nel caso in cui il ricevitore usi un'implementazione più rigida. E poiché generi tutto il tuo JSON tramite una libreria invece di scriverlo per mano, aggiungere queste citazioni non è un onere aggiuntivo.