【问题标题】:How to retrieve the leaf children from JSON in Javascript? [duplicate]如何在 Javascript 中从 JSON 中检索叶子子节点? [复制]
【发布时间】:2020-03-02 09:41:23
【问题描述】:

如果我有一个 json 对象,但我真的不知道它有多复杂,我想按照下面的示例对其进行重构,我该如何用 Javascript 编写它?

假设我有一个 json 对象如下:

{
    "a": 1,
    "b": {
            "c": 2,
            "d": {
                     "e": 3
                  }
         }
    "f": {
            "g": 4
         }
}

现在,我想得到以下预期结果:

{
   "a": 1,
   "b.c": 2,
   "b.d.e": 3,
   "f.g": 4
}

【问题讨论】:

标签: javascript


【解决方案1】:

如果您可以使用它们,有一个库可以完成这项工作:https://www.npmjs.com/package/flat

或者类似的东西:

let original = {
    "a": 1,
    "b": {
        "c": 2,
        "d": {
            "e": 3
        }
    },
    "f": {
        "g": 4
    }
}

function flattenObj(obj, parent = '', res = {}){
    for(let key in obj){
        let propName = parent ? parent + '.' + key : key;
        if(typeof obj[key] == 'object'){
            flattenObj(obj[key], propName, res);
        } else {
            res[propName] = obj[key];
        }
    }
    return res;
}

let response = flattenObj(original)

console.log(response)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-11
    • 1970-01-01
    • 1970-01-01
    • 2013-10-26
    • 1970-01-01
    • 2016-05-13
    • 1970-01-01
    • 2020-09-09
    相关资源
    最近更新 更多