【发布时间】:2013-07-10 12:38:14
【问题描述】:
我有一个 JSON 对象,它有一个键值对,其中一对的值为 0E10。
问题是这个值应该是一个字符串,但由于在数字后存在字母 E,它被视为浮点数,因此每当我打印这个值时它都显示 0 ( 0*e+10)。
有人可以帮我解决这个问题吗?
我正在使用 perl 传递 JSON 并通过 Javascript 读取它。 (任何语言的解决方案都可以接受)
这是我打印 JSON 时得到的。
KEY1 : 0E10
KEY2:“XYZ”
您可以清楚地看到,如果值是字符串,它会放在引号 (") 下,但对于 0E10,它没有使用引号 (")。
我的问题是我正在从一个我无法控制的 API 读取 JSON。我有一个用 perl 编写的后端服务,它传递 API 返回的 JSON。因此,每当我点击一个 URL 时,就会调用用 perl 编写的后端服务。此服务从 API 获取 JSON 并将 JSON 返回到访问 URL 的服务。
【问题讨论】:
-
你能粘贴这样的json吗?如何解码?
-
你有
0E10而不是"0E10",所以它不像字符串 -
您需要向人们展示您是如何创建 JSON 的。同时,
perldocperlnumber中的讨论可能会有所帮助。 -
JSON 会自动将字符串放入引号中,但在这种情况下它没有这样做,因为它会将其视为浮点数。
-
你是说外国 API 对待
key: 0E10和key: 0的方式不同,你想要前者吗?