为什么 eval 在这里失败?
0001: response
$[0] = [string] "{\"code\":200,\"id\":121}"
0001: eval(response)
SyntaxError: invalid label
有人知道吗?
0001: response
$[0] = [string] "{\"code\":200,\"id\":121}"
0001: eval(response)
SyntaxError: invalid label
Anyone knows?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您必须将其包装在
()
中才能触发表达式求值,如下所示:您可以在这里测试一下。
虽然更好的方法是原生 JSON 处理:
只需包含 json2.js 对于旧版浏览器(< IE8 ) 支持,调用是相同的...它只是添加全局
JSON
对象(如果丢失)。You have to wrap it in
()
to trigger expression evaluation, like this:You can test it out here.
Though a better method is native JSON handling:
Just include json2.js for older browser (< IE8) support, the call is the same...it just adds the global
JSON
object if it's missing.您需要将 JSON 字符串括在括号中。
否则,
{ ... }
会被解释为可执行语句块,但事实并非如此。通过将其括在括号中,可以强制解释器将其解释为表达式。
You need to wrap the JSON string in parentheses.
Otherwise, the
{ ... }
is interpreted as a block of executable statements, which it isn't.By surrounding it in parentheses, you force the interpreter to interpret it as an expression.