带双引号的标签在浏览器中生成错误“无效标签”

时间:2011-11-28 11:40:11

标签: javascript json

我开始在浏览器中收到错误,从服务器解析JSON返回数据。起初我认为这是我的数据特有的东西,但即便是像

这样的东西
{"a": 1}

导致Firefox中出现“invalid label”错误,Chrome中出现“SyntaxError:Unexpected token:”。将其更改为

{a:1}

(即删除标签周围的双引号)它工作正常。但是,我确信即使使用双引号,它也是有效的JSON(JSONLint同意这一点。)

我看到的解决方法是用括号括起JSON对象:

({"a":1})

这可以从浏览器控制台工作,但不是在我更改我的服务器数据(响应JSONP调用)时我也无法在浏览器中更改它,因为我正在使用库(Dojo)和在解析之前,我没有机会拦截返回数据。

更新

我在服务器代码中发现了一个错误,我没有将数据包装在JSONP响应的JS函数中。这解决了问题,我随后需要删除这个问题。道歉,并感谢你的回应。

1 个答案:

答案 0 :(得分:2)

{"a": 1}
单独站立不是json,它是block

其中"a":为跳转label以继续。这些标签的编写没有"

({"a":1})是表达式。因此{"a": 1}将被解析为json。