我正在将一些 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
from "UPC":083456789012,
或将其转换为"UPC":"083456789012",
它变得有效。
JSON真的不能接受以以下开头的整数吗0
,或者有办法解决这个问题吗?
JavaScript 中前导 0 表示八进制数。八进制数不能包含 8;因此,该号码无效。
此外,JSON 不(正式)支持八进制数字,因此形式上 JSON 是无效的,即使该数字不包含 8。不过有些解析器确实支持它,这可能会导致一些混乱。其他解析器会将其识别为无效序列并抛出错误,尽管它们给出的确切解释可能有所不同。
解决方案:如果您有数字,请勿将其存储为前导零。如果您的值需要有前导零,请不要将其视为数字,而应将其视为字符串。将其存储在引号中。
在这种情况下,您有一个 UPC长度需要为 12 位数字 http://en.wikipedia.org/wiki/Universal_Product_Code并且可能包含前导零。我认为存储它的最好方法是作为字符串。
不过,这是值得商榷的。如果将其视为条形码,将前导 0 视为其不可分割的一部分,那么字符串就有意义了。其他类型的条形码甚至可以包含字母字符。
另一方面。 UPC 是一个数字,它的左侧填充了 0 到 12 位数字,这一事实可以被视为显示属性。实际上,如果您通过添加额外的 0 将其左填充到 13 位,您就得到了 EAN 代码,因为 EAN 是 UPC 的超集。
如果您有货币金额,您可以将其显示为€ 7.30
,当您将其存储为7.3
,因此将产品代码存储为数字也是有意义的。
但这个决定取决于你。我只能建议你使用字符串,这是我个人对这些代码的偏好,如果你选择数字,那么你必须删除0
使其发挥作用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)