簡體   English   中英

json響應深度節點遍歷打印鍵值

[英]json response deep node traverse print key value

我正在尋找將處理json響應的javascript函數。 該函數將獲取每個節點的鍵值對。 json響應節點的深度可能是2到5,6,7深度。 我在下面嘗試了函數,但只會深入2個節點。 有沒有辦法使像下面這樣的通用函數可以處理json響應中可變深度的節點?

function process(key,value) {
    Logger.log(key + " : "+value);
}

function traverse(o,func) {
    for (var i in o) {
        func.apply(this,[i,o[i]]);  
        if (o[i] !== null && typeof(o[i])=="object") {
            //going on step down in the object tree!!
            traverse(o[i],func);
        }
    }
}

更改traverse函數,使其僅對葉子調用回調,而不對中間節點調用回調。

function traverse(o,func) {
    for (var i in o) {
        if (o[i] !== null && typeof(o[i])=="object") {
            //going on step down in the object tree!!
            traverse(o[i],func);
        } else {
            func.apply(this,[i,o[i]]);  
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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