在我的angularjs应用程序中,我从API中获取此JSON:
[
{
'Foo': 'bar'
}
]
不幸的是 - SyntaxError:意外的令牌'在Object.parse(native)
有没有办法在不更改API的情况下修复此客户端?
答案 0 :(得分:4)
那不是JSON。它类似于JSON,但是JSON requires字符串和属性键是双引号,而不是单引号。
所以答案是:纠正API。如果你不控制它,告诉控制它的人它是错的。
如果你绝对需要支持那个破坏的响应,你可能会考虑修改一个Crockford的JSON parsers来使它支持单引号键和字符串,这应该不是很难。或者您可以使用PEG.js生成自己的解析器(可能从他们的JavaScript解析器开始),但这样做会更多。
你会告诉别人你可以用eval
来解析它,这是真的,你可以:
// LAST RESORT
var data = eval("(" + response + ")");
...但请注意 eval
将在响应中运行任意代码,它不仅解析数据结构。因此,您必须绝对信任API ,不要发回恶意内容,跟踪用户的内容等。