0

可能重复:
我有一个嵌套的数据结构/JSON,我怎样才能访问一个特定的值?

请在我的 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

4 回答 4

1

Products 是一个包含一个对象类型元素的数组。因此,您应该输入:

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 €"
}
于 2012-12-20T12:47:57.333 回答
1

嗯,data.products是一个数组,所以你不能得到id那个数组,你需要尝试查找其中每个元素的属性。

例如,这会给你一个结果:

 alert(data.products[0].id);

但是,您可以尝试遍历该数据:

 data.products.forEach(function(product) {
      alert(product.id);
 });

请注意,上述forEach内容不适用于糟糕的旧浏览器(包括 IE8),但它适用于任何现代浏览器。如果您需要支持较旧的循环,请使用for 循环。

于 2012-12-20T12:49:49.910 回答
1

我不确定,但如果你试试这个:

alert(data.products[0].id); 

因为 products 键似乎是一个数组,但只有一行。

于 2012-12-20T12:49:55.187 回答
0

试试这个..因为你的产品在数组中

alert(data.products[0].id); 
于 2012-12-20T12:49:24.693 回答