[英]Is it always required to call an object all the way through the chain (or in order)?
我正在嘗試瀏覽reddit的API。 我看過一個小提琴 ,他們從網站上獲取圖像URL。 但是,我對它們如何獲取對象本身感到困惑。 在他們的each()
語句中,他們使用了data.data.children
和item.data.url
,但是我無法在json的另一個數據對象之后的http://www.reddit.com/r/pics.json
找到數據對象http://www.reddit.com/r/pics.json
。 我也沒有看到item.data.url
。 如果我從一開始就看(前兩個對象是“種類”和“數據”)。 這是什么意思?
鑒於小提琴中的代碼:
$.getJSON("http://www.reddit.com/r/pics/.json?jsonp=?", function(data) {
$.each(data.data.children, function(i,item){
$("<img/>").attr("src", item.data.url).appendTo("#images");
});
});
data
和item
都是函數參數,它們的名稱與JSON中的任何命名鍵都沒有關系。
參數data
表示整個JSON結構,但由於它只是一個名稱不重要的參數,因此我將其命名為foo
以便將其與該結構的內容區foo.data
來,因此foo.data
在第一個foo.data
引用了名為data
的子元素。 JSON級別。
的item
參數表示在陣列中的每個元件foo.data.children
,所以item.data.url
的第一個項目將相當於data.children[0].data.url
的JSON內。
返回的JSON的結構為:
{
data: {
after: "",
before: null,
children: [
{
data: {
url: ""
}
},
...
],
modhash: ""
},
kind: "Listing"
}
結果變量的名稱在回調函數參數中稱為data
。 因此,要找到孩子,您需要輸入:
data.data.children;
接下來,在$.each
循環中, children
數組中的每個條目都分配給該回調函數中的item
變量。 從那里您可以深入到url
。 屬性( item.data.url
)。
如果data.data
令人困惑,則可以data.data
命名。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.