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を与えました!

どうすればIDを取得できますか?

前もって感謝します !

4

4 に答える 4

1

Products は object 型の要素を 1 つ含む配列です。したがって、次のように入力する必要があります。

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

プロダクト キーは配列のように見えますが、1 行しかないためです。

于 2012-12-20T12:49:55.187 に答える
0

これを試してください..あなたの製品は配列にあるので

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