试图解析JSON字符串,意外数字

Trying to parse JSON string, unexpected number

本文关键字:意外 数字 字符串 JSON      更新时间:2023-09-26

我正在尝试解析这个JSON:

var json = '{"material":"Gummislang 3'/4'" 30 m (utanp'u00e5liggande sk'u00e5p)"}'

我运行JSON.parse(json),但我得到错误SyntaxError: Unexpected number时这样做。我在谷歌浏览器中尝试过这个。我不知道问题是什么,因为我可以把JSON字符串,并把它放在任何JSON验证器,它声称JSON是有效的。难道浏览器不能解析它吗?

您正在将JSON对象表示插入到JavaScript字符串中,而没有正确转义该表示。

为了避免这样做,请删除您在表示周围添加的引号,并跳过JSON.parse(json) & & &;当在此上下文中使用时,PHP的json_encode()的默认输出是有效的JavaScript。

为了安全起见,如果可能的话,应该指定JSON_HEX_TAG选项。这将防止在JSON可能最终被解析为XML的文档中出现跨站点脚本。(对于XML文档,JSON也应该在CDATA部分中。)

您正在验证字符串字面值,这是一个包含无效JSON的有效JSON字符串。您需要验证字符串的值,这不是有效的JSON。

如果您将字符串值粘贴到JSON验证器中,您将看到错误来自以下部分:

"material": "Gummislang 3/4"30m

"需要转义