簡體   English   中英

是否始終需要在整個鏈中(或依次)始終調用對象?

[英]Is it always required to call an object all the way through the chain (or in order)?

我正在嘗試瀏覽reddit的API。 我看過一個小提琴 ,他們從網站上獲取圖像URL。 但是,我對它們如何獲取對象本身感到困惑。 在他們的each()語句中,他們使用了data.data.childrenitem.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");
    });
});

dataitem都是函數參數,它們的名稱與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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM