JavaScript eval() JSON 问题

标签 javascript jquery json iteration eval

我有下面的 JSON 字符串:

{ "name":"Ruby on Rails Baseball Jersey", "price":"19.99",
"id":"1025786064",
"image":"http://127.0.0.1:3001/assets/products/4/product/ror_baseball.jpeg" }, { "name":"Ruby on Rails Baseball Jersey", "price":"19.99",
"id":"1025786064",
"image":"http://127.0.0.1:3001/assets/products/5/product/ror_baseball_back.jpeg" }, { "name":"Ruby on Rails Ringer T-Shirt", "price":"19.99",
"id":"187438981",
"image":"http://127.0.0.1:3001/assets/products/9/product/ror_ringer.jpeg" }, { "name":"Ruby on Rails Ringer T-Shirt", "price":"19.99",
"id":"187438981",
"image":"http://127.0.0.1:3001/assets/products/10/product/ror_ringer_back.jpeg" }, { "name":"Apache Baseball Jersey", "price":"19.99",
"id":"706676762",
"image":"http://127.0.0.1:3001/assets/products/1004/product/apache_baseball.png" }, { "name":"Ruby Baseball Jersey", "price":"19.99", "id":"569012001", "image":"http://127.0.0.1:3001/assets/products/1008/product/ruby_baseball.png" }

然后在 jQuery 中:

var d = eval("(" + data + ")"); //data is the json string above.

$.each(d, function(idx, item) {
 alert(item);      
});

没有错误,但只显示第一个序列的数据。如何循环遍历所有数据?

谢谢。

最佳答案

首先,请确保您使用此处的 JSON 解析器:https://github.com/douglascrockford/JSON-js/blob/master/json2.js

那么你的代码将如下所示:

var myArrayOfObjects = JSON.parse("[" + data + "]");
for (obj in myArrayOfObjects)
{
   alert("Name:" + myArrayOfObjects[obj].name);
}

或者在 Jquery 中:

$.each(myArrayOfObjects , function(i, o) {
 alert("Name:" + o.name);      
});

关于JavaScript eval() JSON 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3707960/

相关文章:

javascript - 将模块与 webpack 一起使用

javascript - 在 HandleBars JS 中处理 HTML 转义值

jquery - 为什么这个 jquery 动画不起作用?

javascript - JSON.parse 未正确评估 JSON 字符串

javascript - Mocha 怎么知道是异步的?

javascript - 禁用右键单击除文本区域和文本字段之外的每个选项卡

javascript - 是否有一个明确的解决方案可以使用 jQuery 来验证 URL 而无需插件?

javascript - 在javascript中复制部分json键值

android - 是 "NULL"对于用于 android 的任何 JSON 库中的 JSON 空值有效

javascript - 如何使用完整性和跨域预加载脚本