迭代javascript对象

时间:2014-02-10 15:42:49

标签: javascript json

美好的一天!

如何通过点(。)语法在我的json上获取值?

这是我的json数据:

[
{"productName":"31","description":"this is a red item","quantity":"","price":"15"},
{"productName":"35","description":"this color is blue","quantity":"","price":"600"}]

我尝试使用

var temp = $.cookie('Table_Rows'); <-- which contains the json data above;

for (var key in temp ) {
if (temp.hasOwnProperty(key)) {
  var obj = temp[key];
  for (var prop in obj) {
     if (obj.hasOwnProperty(prop)) {
        console.log(prop + " = " + obj[prop]);
     }
   }
  }
}

然后我在我的控制台上得到了这个日志:

0 = [
0 = {
0 = "
0 = p
0 = r
0 = o
0 = d
0 = u
0 = c
0 = t
0 = N
0 = a
and so on..

请你帮我解决一下正确的方法。 我想像temp.productName那样访问它。我知道这必须是一个简单的解决方案,但它现在让我很困惑。谢谢你,祝你有愉快的一天!

2 个答案:

答案 0 :(得分:1)

您的数组包含 product 项,您可以使用简单的数组索引访问器访问它们。

但首先,将您的cookie字符串对象解析为JSON:

var jsonArray = JSON.parse(temp);

然后你应该想出:

var jsonArray = [{
    productName: "31",
    description: "this is a red item",
    quantity: "",
    price: "15"
}, {
    productName: "35",
    description: "this color is blue",
    quantity: "",
    price: "600"
}];

你可以这样迭代:

for (obj in jsonArray) {
    console.log(jsonArray[obj].productName);
}

并获得以下输出:

31
35 

有关完整代码版本,请参阅我的JSFiddle示例。

答案 1 :(得分:1)

您需要使用JSON.parse将您从cookie值获得的JSON转换为JavaScript对象

然后,您可以使用ES5中提供的数组方法访问productName

temp.forEach(function(item){ console.log(item.productName) });