我有下面的 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/