我将一些
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.一些解析器确实支持它,这可能会导致一些混乱.
此外,JSON不(官方)支持八进制数字,所以正式地,JSON是无效的,即使数字不包含8.一些解析器确实支持它,这可能会导致一些混乱.
解决方案:如果您有一个号码,请不要以前导零存储.如果您有一个需要前导零的值,请不要将其视为数字,而应将其视为字符串.用它周围的引号存储它.
在这种情况下,您有一个UPC,其中needs to be 12 digits long可能包含前导零.我认为存储它的最好方式是字符串.
这是有争议的.如果将它视为条形码,看到前导0作为其组成部分,则字符串是有意义的.其他类型的条形码甚至可以包含字母字符.
另一方面. UPC是一个数字,事实上,它被填充为零到12位可以被看作是一个显示属性.实际上,如果你通过添加一个0加上13位数,那么你有一个EAN代码,因为EAN是UPC的超集.
如果您有一个单位数量,您可能会将其显示为7.30欧元,而将其存储为7.3,因此将产品代码存储为数字也是有意义的.