如果整数以0开头,为什么JSON无效

前端之家收集整理的这篇文章主要介绍了如果整数以0开头,为什么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 ",}

如果我通过从“UPC”:083456789012中删除0或将其转换为“UPC”:“083456789012”来更新JSON,则它将变为有效.

JSON真的不接受以0开头的整数,还是有问题的方法

谢谢,

解决方法

前导0表示JavaScript中的八进制数.八进制数不能包含8,因此,该数字无效.
此外,JSON不(官方)支持八进制数字,所以正式地,JSON是无效的,即使数字不包含8.一些解析器确实支持它,这可能会导致一些混乱.

解决方案:如果您有一个号码,请不要以前导零存储.如果您有一个需要前导零的值,请不要将其视为数字,而应将其视为字符串.用它周围的引号存储它.

在这种情况下,您有一个UPC,其中needs to be 12 digits long可能包含前导零.我认为存储它的最好方式是字符串.

这是有争议的.如果将它视为条形码,看到前导0作为其组成部分,则字符串是有意义的.其他类型的条形码甚至可以包含字母字符.

另一方面. UPC是一个数字,事实上,它被填充为零到12位可以被看作是一个显示属性.实际上,如果你通过添加一个0加上13位数,那么你有一个EAN代码,因为EAN是UPC的超集.
如果您有一个单位数量,您可能会将其显示为7.30欧元,而将其存储为7.3,因此将产品代码存储为数字也是有意义的.

但这个决定取决于你.我只能建议你使用一个字符串,这是我个人喜欢这些代码,如果你选择号码,那么你必须删除0才能使它工作.

猜你在找的JavaScript相关文章