json.orgで使用されているグラフィックの解釈がJSON形式の数字の構文を示すのには正確ではありませんが、私の読書によれば、数字はゼロから始めることはできません。JSONで数値をゼロから始めることはできませんか?
私はそれを読む方法は、それはORその後、マイナス記号、または単一のゼロまたは数がゼロ以外の数字で始まります。言い換えれば、
0 OK -0 OK 2 OK -2 OK 103 OK -103 OK -045 INVALID 045 INVALID
これは正しい解釈ですか?
json.orgで使用されているグラフィックの解釈がJSON形式の数字の構文を示すのには正確ではありませんが、私の読書によれば、数字はゼロから始めることはできません。JSONで数値をゼロから始めることはできませんか?
私はそれを読む方法は、それはORその後、マイナス記号、または単一のゼロまたは数がゼロ以外の数字で始まります。言い換えれば、
0 OK -0 OK 2 OK -2 OK 103 OK -103 OK -045 INVALID 045 INVALID
これは正しい解釈ですか?
正解ですが、JSONの数値に先行ゼロを付けることはできません。
理由は主に歴史的です:JSONはJavaScriptのリテラル表記から派生したものです。ある時点で、JavaScriptの数字のリテラル表記では、先頭の0は8進数(8進数)を意味していたので、010
は8番目の数字になります。これは、ECMAScript仕様の第1版と第2版(それぞれ1997年と1998年)にありました。第3版では、オプションの「追加」構文に非難され、第5版(第4版はなかった)では、新しい「厳密」モードでは禁止されていました。最後に、ES2015(第6版とも呼ばれ、TC39で年を使い始めることにしました)では、曖昧でない8進表記を導入しました。0o
接頭辞(大文字と小文字は区別されません)は、16進数の接頭辞0x
に似ています。
先頭の0が8進数を意味するかどうかについてのすべてのカフルーフの間、CrockfordはJSONを定義していましたが、先頭の0は物事を単純化し、混乱を避けました。彼は、構文解析を簡単に/簡単にするために、16進数をサポートしないことにしました。
グラフがある場合、最初のゼロの後には、ドットを続けるか、指数部にスキップすることができます –
右のような音がします。 –
16進数をサポートしていない場合、なぜ8進数をサポートするのですか? ( '-045'は途中で' -37'という値があります) –