0

サーバーを5秒ごとにポーリングするajaxリクエストがあり、ユーザーのショッピングカートのコンテンツで使用できるデータのjson配列を返します。

json は正しく形成されており、問題なく毎回返されています。

JSON

[
    {
        "status": "success",
        "responsecode": "00",
        "data": [
            {
                "partnumber": "Part 1",
                "status": "true",
                "quantity": "4",
                "productid": "item-1",
                "name": "Product 2",
                "online": "1"
            },
            {
                "partnumber": "Part 2",
                "status": "false",
                "quantity": "0",
                "productid": "item-2",
                "name": "Product 2",
                "online": "1"
            }
        ]
    }
]

ajax レスポンスを処理する Jquery 関数

function doPoll(){   
    $.ajax({
           type: "get",
           url: "/assets/static-pages/shopping-cart/?action=check-cart",           
            dataType : 'json',
            success: function(html) {
            $.each(html, function(key, value) 
                {
                    console.log(value.data[key].partnumber);
                }
             );
             }
    });
    //   setTimeout(doPoll,10000);
}

ループするたびに、配列の最初の項目を返すだけです。配列をループして、「データ」配列内にあるすべてのものを返したいので、その内容に基づいて UI を操作できますが、何らかの理由で、すべてのデータを取得する方法がわかりません。

どんな提案でも大歓迎です

4

1 に答える 1

1

json は配列であるため、この場合はインデックスを使用してアクセスする必要があります0
次に、 を使用してアクセスする必要はありませんkey。各データ オブジェクトをループするため、 に格納されvalueます。

$.each(html[0].data, function(key, value) {
    console.log( value.partnumber );
});
于 2013-08-10T03:09:21.543 に答える