Jquery如何从我的json数组中获取数据

时间:2012-12-20 12:46:43

标签: javascript jquery json

  

可能重复:
  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

请高手,我该怎么办才能获得身份证明?

提前致谢!

4 个答案:

答案 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);