2012-05-23 66 views
2

我第一次觸摸JSON,並且遇到迭代對象的問題。使用jQuery循環播放對象

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

一些點我在正確的方向,請

+0

你不會真的有*解析* JSON字符串的問題,你呢? – Bergi

回答

2
$(function(){ 
    $.each(data.response, function(index,item){ 
      alert(item.Available); 
      var child=item.Variations; 
      alert(child[0].Price); 
    }); 
}); 

工作樣本http://jsfiddle.net/d84nj/10/

+0

正是我想要的。謝謝! – Fraser

2

$.each可以通過每個鍵的第二個參數回調的價值。

$.each(data.response, function(date, value) { 
    // value.Available 
}); 
+0

不知道這一點,謝謝:) – Fraser

1

當您需要該值時,您正在使用屬性名稱。

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

所以,你可以看到日期的原因是,它是屬性名稱。你想:

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