美好的一天!
如何通过点(。)语法在我的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
那样访问它。我知道这必须是一个简单的解决方案,但它现在让我很困惑。谢谢你,祝你有愉快的一天!
答案 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) });