2017-09-21 14 views
0

json.orgで使用されているグラフィックの解釈がJSON形式の数字の構文を示すのには正確ではありませんが、私の読書によれば、数字はゼロから始めることはできません。JSONで数値をゼロから始めることはできませんか?

enter image description here

私はそれを読む方法は、それはORその後、マイナス記号、または単一のゼロまたは数がゼロ以外の数字で始まります。言い換えれば、

 
    0 OK 
    -0 OK 
    2 OK 
    -2 OK 
103 OK 
-103 OK 
-045 INVALID 
045 INVALID 

これは正しい解釈ですか?

+0

グラフがある場合、最初のゼロの後には、ドットを続けるか、指数部にスキップすることができます –

+0

右のような音がします。 –

+0

16進数をサポートしていない場合、なぜ8進数をサポートするのですか? ( '-045'は途中で' -37'という値があります) –

答えて

1

正解ですが、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進数をサポートしないことにしました。

関連する問題