可能重复:
I have a nested data structure / JSON, how can I access a specific value?
请在我的ajax方面得到以下json字符串:
{
"products": [
{
"id": 48,
"quantity": 1,
"priceByLine": "950,00 €",
"name": "Filtre Mixte",
"price": "950,00 €"
}],
"total": "950,00 €",
"productTotal": "950,00 €"
}
要获得总价,我必须这样做:
alert(data.total);
但是当我想获得Id时,我会这样做:
alert(data.products.id);
它给了我 undefined !
请高手,我该怎么办才能获得身份证明?
提前致谢!
答案 0 :(得分:1)
Products是一个包含object类型元素的数组。因此,您应该键入:
alert(data.products[0].id);
如果结构是:
,您的陈述将是有效的{
"products":
{
"id": 48,
"quantity": 1,
"priceByLine": "950,00 €",
"name": "Filtre Mixte",
"price": "950,00 €"
},
"total": "950,00 €",
"productTotal": "950,00 €"
}
答案 1 :(得分:1)
好吧,data.products
是一个数组,所以你无法获得该数组的id
,你需要尝试查找其中每个元素的属性。
例如,这会给你一个结果:
alert(data.products[0].id);
但是,你可以尝试循环遍历这些数据:
data.products.forEach(function(product) {
alert(product.id);
});
请注意,上述forEach
无法在糟糕的旧版浏览器(包括IE8)中使用,但它可以在任何现代版本中使用。如果您需要支持较旧版本,请使用for loop。
答案 2 :(得分:1)
我不确定,但如果你试试这个:
alert(data.products[0].id);
因为products键似乎是一个数组,但只有一行。
答案 3 :(得分:0)
试试这个..因为你的产品是数组
alert(data.products[0].id);