<!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对象
姓名:约翰·约翰逊
伊瓦尔姓名:约翰·约翰逊
发布于 2012-07-17 13:45:30
yyyy不是JSON。它是一个JavaScript对象。所以在这种情况下,你根本不需要eval。在处理JSON时,应该使用JSON.parse而不是eval。
eval只返回传递给它的对象,而不修改它。所以这里是多余的。
发布于 2012-07-17 13:48:06
JSON是一个序列化协议,受Javascript的启发(并以Javascript命名)。您拥有的是一个实际的Javascript对象。JSON将作为服务器的响应到达浏览器,您必须使用一些东西将字符串解码为Javascript对象。JSON.parse是最好的选择。eval也适用于此,但它是一种非常钝和危险的工具。
您可以使用服务器端的JSON编码器将Javascript对象插入到服务器生成的Javascript中,这可能就是您显示代码的方式。在这种情况下,您根本不需要解码器,您可以像在第一个示例中显示的那样简单地使用对象。
https://stackoverflow.com/questions/11523815
复制相似问题