2013-07-25 65 views
2

我有这个领域为什么JSON.parse不适用于“23232323.”?

text = "23232323." 

和验证我想它像这样23232323.

我试图用JSON.parse(text)SyntaxError: JSON.parse: missing digits after decimal point

eval(text)是给23232323

哪有我修复它?

+1

如果这就是您的所有JSON字符串,则无效。 JSON需要包含在'{}'或'[]'中。你的*确切*数据是什么? –

+1

@ÁlvaroG.Vicario这不是问题。试试'JSON.parse(“3”)'。 –

+0

@dystroy:确实,它可能适用于很多解析器。但是,根据RFC,数组或对象应该位于顶层。至少这就是我理解第2节的原因:*“JSON文本是序列化的对象或数组。”*(http://www.ietf.org/rfc/rfc4627.txt)。 –

回答

10

它不能被解析,因为与流行的观点相反,JSON是一种强烈定义的语言,你不能简单地放置任何你可以评估的东西。

下面是如何编号被定义:

enter image description here

(见json.org

您可以通过在除去末端的点解决问题,或者更好,通过不把它在第一地点。当然,如果你相信源,你也可以简单地使用eval('('+yourstring+')')

相关问题