【问题标题】:Extract all json key from unknown json structure [duplicate]从未知的json结构中提取所有json键[重复]
【发布时间】:2016-06-23 19:22:33
【问题描述】:

我的算法有问题,我想知道一个数组中某个 json(未知结构)文件中的所有键(嵌套对象、对象数组)。

{
  "key": "value to array",
  "key": [{
    "key": {
     "key": "value"
     "key": ["value", "value", "value", {"key":"value"}]
    }
  }]
}

结构可以改变。

Function(object) {
  var array_of_all_key = []
  return array_of_all_key
}

function allKeys(object) {
  Object.keys(object).reduce((keys, key) => {

 if(typeof object[key] == 'object') {
   allKeys(object[key])
 }

 if(tags[key founded on json]) {
   // my global var
   tags[key] = tags[key] + 1
 }

  });
}

【问题讨论】:

    标签: javascript json node.js extract


    【解决方案1】:

    使用Object.keys

    var obj = {
      key1: 'foo',
      key2: 'bar'
    };
    var keys = Object.keys(obj);
    //keys === ['key1', 'key2'];
    

    【讨论】:

    • 是的,但我不知道json的结构
    • @MichaelDavies,这有什么关系?
    • 这不是完整的功能,因为它不会得到嵌套键。
    【解决方案2】:

    只需使用Object.keys 和递归函数。

    function allKeys(object) {
      return Object.keys(object).reduce((keys, key) => 
        keys.concat(key, 
          typeof object[key] === 'object' ? allKeys(object[key]) : []
        ), 
        []
      );
    }
    

    【讨论】:

    • 我如何推送到 var array = []?
    • concat 就是这样做的
    • 不工作我正在更新问题最后的代码
    • 如果对象是普通数组?
    • 它也应该适用于数组,但你会得到类似0, 1, 2 等的东西......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-22
    • 2021-09-19
    • 1970-01-01
    • 1970-01-01
    • 2021-08-26
    • 2017-08-02
    • 1970-01-01
    相关资源
    最近更新 更多