Javascript 为什么JSON.parse会失败,而eval()却能像符咒一样工作?
由于某种原因,当我尝试使用JSON.parse()时,这种格式化的JSON总是失败Javascript 为什么JSON.parse会失败,而eval()却能像符咒一样工作?,javascript,json,node.js,Javascript,Json,Node.js,由于某种原因,当我尝试使用JSON.parse()时,这种格式化的JSON总是失败 JSON.parse失败,因为它只能处理JSON语法。您的字符串不是有效的JSON——它在您收到的错误消息中这样说 错误指向本部分的模式中的m: "subclass":13,modes:{"mode":458752, 你还遗漏了几句话;你可能想看看 eval执行作为字符串传入的JavaScript代码——就好像您在运行函数的地方用代码编写代码一样。由于您的字符串是有效的JavaScript,因此它可以正常工作
JSON.parse
失败,因为它只能处理JSON语法。您的字符串不是有效的JSON——它在您收到的错误消息中这样说
错误指向本部分的模式中的m
:
"subclass":13,modes:{"mode":458752,
你还遗漏了几句话;你可能想看看
eval
执行作为字符串传入的JavaScript代码——就好像您在运行函数的地方用代码编写代码一样。由于您的字符串是有效的JavaScript,因此它可以正常工作。,计数:229,堆栈:
结尾处的字符串在没有的情况下是无效的JSON。
您的字符串没有正确地为JSON进行字符串化。parse to parse是因为它不是有效的JSON。投票以键入/不重复/对其他人以后没有用处的方式关闭。在JSON中,属性名称(键)必须使用双引号。您有模式:{
(周围没有引号)。请参阅并在模式
、计数
和堆栈
周围加上双引号,使其成为有效的JSON。@Amardepbhowmickeval()
只是运行JS代码,它不是JSON解析器。@Amardepbhowmick我已经用解释更新了答案。
"subclass":13,modes:{"mode":458752,