首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在解析json对象时,eval()是不是非强制性的?

在解析json对象时,eval()是不是非强制性的?
EN

Stack Overflow用户
提问于 2012-07-17 13:43:55
回答 2查看 134关注 0票数 0
代码语言:javascript
复制
<!DOCTYPE html>
<html>
<body>
<h2>JSON Object Creation in JavaScript</h2> 

<p>
Name: <span id="jname"></span><br />
Eval Name: <span id="evalname"></span><br />
<p>
<script>
var yyyy= {
"name":"John Johnson",
"street":"Oslo West 555",
"age":33,
"phone":"555 1234567"};


document.getElementById("jname").innerHTML = yyyy.name;
document.getElementById("evalname").innerHTML = eval(yyyy).name;
</script>

</body>
</html>

我要把它放出来,如下所示

JavaScript中创建JSON对象

姓名:约翰·约翰逊

伊瓦尔姓名:约翰·约翰逊

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-17 13:45:30

yyyy不是JSON。它是一个JavaScript对象。所以在这种情况下,你根本不需要eval。在处理JSON时,应该使用JSON.parse而不是eval

eval只返回传递给它的对象,而不修改它。所以这里是多余的。

票数 7
EN

Stack Overflow用户

发布于 2012-07-17 13:48:06

JSON是一个序列化协议,受Javascript的启发(并以Javascript命名)。您拥有的是一个实际的Javascript对象。JSON将作为服务器的响应到达浏览器,您必须使用一些东西将字符串解码为Javascript对象。JSON.parse是最好的选择。eval也适用于此,但它是一种非常钝和危险的工具。

您可以使用服务器端的JSON编码器将Javascript对象插入到服务器生成的Javascript中,这可能就是您显示代码的方式。在这种情况下,您根本不需要解码器,您可以像在第一个示例中显示的那样简单地使用对象。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11523815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档