簡體   English   中英

使用javascript在json數據中搜索一個鍵

[英]search for a key in json data using javascript

data:{
key1:{
   child1:{},
   child2:{}
 }
key2:{
  child21:{}
 }
}

當我不確定 key2 的位置時,如何獲得 key2 的孩子?

var keys = Object.keys(data);

這將返回鍵名的字符串數組。 ["key1", "key2"]

我認為具體你需要:

var childnames = Object.keys(data[key2]);

您可以通過以下方式將其轉換為這些對象的數組,這些對象是它的子對象:

var key2children = [];
for(var i=0; i< childnames.length; i++){
  key2children.push(data[key2][cildnames[i]);
}

編輯也許這有幫助?:

//To get the children of an object
function getChildObjects(tgtobj){
    var objchildren = [];
    objectkeys = Object.keys(tgtobj);
    for(var i=0; i< objectkeys.length; i++){
      key2children.push(tgtobj[objectkeys[i]);
    }
    return objectchildren;
}

//This could be used to get the children of a child object in a function like this:
function getChildOjectsOfChildByName(tgtobj, name){
    return getChildObjects(tgtobj[name]);
}

//usage example:
var key2childojects = getChildOjectsOfChildByName(data, "key2");

您必須使用 for in 循環和遞歸來獲取嵌套鍵。

function searchObj(obj, searVal){
    for (ii in obj){
        if(ii === searVal){
            console.log(ii, ' -- my key');
        } else{
            console.log(ii, ' -- no key here');
            searchObj(obj[ii], searVal);
        }
    }
}
searchObj(data, 'child21');

暫無
暫無

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

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