2

我第一次接触 JSON,我在遍历对象时遇到了问题。

JSON 的格式如下:

{
    "response": {
        "2012-01-01": {
            "Available": 99,
            "Variations": [
                {
                    "ID": 43,
                    "InternalItemID": "Adult",
                    "Price": "49.00"
                }
            ]
        },
        "2012-01-02": {
            "Available": 99,
            "Variations": [
                {
                    "ID": 43,
                    "InternalItemID": "Adult",
                    "Price": "49.00"
                }
            ]
        }
   }
}

我可以访问日期,但无法更深入。我需要所有的价值观:

$.getJSON(jsonurl, function(data){


            $.each(data.response, function(thisDate){
                alert(thisDate);
            });
        });

请有人指出我正确的方向

4

3 回答 3

2

$.each将每个键的值作为第二个参数传递给回调。

$.each(data.response, function(date, value) {
    // value.Available
});
于 2012-05-23T00:47:06.140 回答
2
$(function(){
    $.each(data.response, function(index,item){
            alert(item.Available);
            var child=item.Variations;
            alert(child[0].Price);
    });
});

工作示例http://jsfiddle.net/d84nj/10/

于 2012-05-23T00:51:01.213 回答
1

当您需要该值时,您正在使用属性名称。

jQuery.each( collection, callback(indexInArray, valueOfElement) )

所以你可以看到日期的原因是它是属性名称。你要:

$.each(data.response, function(thisDate, valueOfElement){
    alert(thisDate, valueOfElement);
});
于 2012-05-23T00:48:12.457 回答