Quando as cotações podem ser omitidas no JSON?

Parece um dos segredos mais bem guardados do JSON: Quando exatamente você pode deixar de fora as aspas em torno de uma string - e quais citações (simples ou dupla) você deveria usar de qualquer forma?

oPadrão JSON é bem claro: use aspas duplas e use-as sempre. No entanto, ninguém parece seguir isso, e os analisadores parecem geralmente bem com isso.

Por exemplo, as chaves nos documentos JSON geralmente não parecem precisar de cotações. (Eu acho que é porque o analisador pode assumir que a chave deve ser uma string literal). Mas isso é uma regra real? Existem outras regras desse tipo? Eles são específicos do analisador ou específicos do idioma?

Observe que, embora a questão seja sobre JSON, isso inclui a maneira padrão de expressar objetos JSON em uma determinada linguagem de programação. Se uma linguagem (como JavaScript) tiver regras oficiais que desviem do padrão JSON, seria útil vê-las definidas.

questionAnswers(2)

yourAnswerToTheQuestion