2006-03-18のコメント欄において、dk2さんに次のご指摘をいただきました。
JSON なのですが、名前・値ペアの名前の方も ”” で囲わないと、仕様違反です。JSON parser を通りません。
それで、「謝罪と訂正:JSONの構文を間違えていた」というエントリーを書いたわけですが、dk2さんのコメントには続きがあります。
ところで、JSON parser(JavaScript)では、Eaeflnrstu の文字だけは ”” で囲わなくとも構わなくなっているのですが、その理由をご存知ではないでしょうか?
とりあえず:
まったくわかりません。「Eaeflnrstuの文字だけ」というのはきわめて不思議ですね。
だったのですが、神崎さんの記事で、この件が触れられていました。神崎メモは「ID(インターネットドラフト)になっているJSON仕様がInformational RFCとなる」という話ですが、そのなかで:
Javascriptではオブジェクトの名前は引用符で囲まなくてもたいてい使えるがあるが、JSONの文法としてはstringなので、常に引用符付きでないと構文違反になってしまう(このIDを読むまで気付かなかった。なおJSON parserでは、"Eaeflnrstu"の各文字は直接記述してもパーサを通るようになっているが、これらは、指数を表すか[Ee]、true, false, nullという文字を構成するために使うからで、名前として裸で用いてよいわけではない)。
ということだそうです。パーザーの挙動より、仕様を信用したほうがいいようです。
引用符のことは、神崎さんも「このIDを読むまで気付かなかった」そうで、ちょっとホッとしました(いや、別に間違えた言い訳にはならんけど、なんとなく)。