亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果整數以前導零開頭,為什么JSON無效?

如果整數以前導零開頭,為什么JSON無效?

我正在將一些JSON文件導入到我的Parse.com項目中,并且不斷收到錯誤“無效鍵:值對”。它指出有一個意外的“ 8”。這是我的JSON的示例:} "Manufacturer":"Manufacturer", "Model":"THIS IS A STRING", "Description":"", "ItemNumber":"Number12345", "UPC":083456789012, "Cost":"$0.00", "DealerPrice":" $0.00 ", "MSRP":" $0.00 ",}如果我通過0從中移除JSON "UPC":083456789012,或將其轉換為JSON來更新JSON,則"UPC":"083456789012",它變得有效。JSON真的可以接受以開頭的整數0嗎,還是可以解決問題?
查看完整描述

3 回答

?
森林海

TA貢獻2011條經驗 獲得超2個贊

JavaScript中最令人困惑的部分之一是,如果數字以a開頭0,而不是緊隨其后的.,則它表示一個八進制,而不是十進制。


JSON借用了JavaScript語法,但避免了混淆的功能,因此完全禁止使用帶前導零的數字(除非后面帶有a .)。


即使這是不是這樣,也就沒有理由期望0仍處于數量時,這是自解析02和2有相同數量的只是差表示(如果強制十進制)。


如果前導零對您的數據很重要,則可能是字符串而不是數字。


"UPC":"083456789012"

一個產品代碼是一個標識符,不是你做數學的東西。應該是一個字符串。


查看完整回答
反對 回復 2019-12-02
?
慕俠2389804

TA貢獻1719條經驗 獲得超6個贊

正式地,這是因為JSON DecimalIntegerLiteral在其JSONNumber生產中使用:


JSONNumber ::

    -_opt DecimalIntegerLiteral JSONFraction_opt ExponentPart_opt

并DecimalIntegerLiteral可能只有開始0,如果它是0:


DecimalIntegerLiteral ::

    0

    NonZeroDigit DecimalDigits_opt

背后的原因可能是:


在JSON語法中-重用ECMAScript主語法中的構造。

在主要的ECMAScript語法-更容易區分DecimalIntegerLiteral從HexIntegerLiteral和OctalIntegerLiteral。OctalIntegerLiteral首先。

看到這個作品:


 HexIntegerLiteral ::

     0x HexDigit

     0X HexDigit

    HexIntegerLiteral HexDigit

...


OctalIntegerLiteral ::

    0 OctalDigit

    OctalIntegerLiteral OctalDigit


查看完整回答
反對 回復 2019-12-02
  • 3 回答
  • 0 關注
  • 1216 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號