【问题标题】:JSON to object array formatJSON 到对象数组格式
【发布时间】:2018-12-06 18:37:08
【问题描述】:

我想显示像将JSON数据转换为数组对象如何使用jquery或js解决这个问题? JSON 数据:

[{
  "new": 122,
  "old": 3389,
  "boarding": 1,
  "aws": 10,
  "azure": 12,
  "cli": 41
}];

到数组对象:

[
  ["new", 122],
  ["old", 3389],
  ["boarding", 1]
]

我需要另一个模式我在 Ruby 中有一个这样的数组

 [37, 
  3, 
  261, 
  1, 
  0, 
  1457]

转换为添加为静态键条目

[
["new",37],
["old",3],
["boarding",1]
["aws",0]
["azure",1457]
] 

【问题讨论】:

  • 您是否故意在所需输出中省略了"aws":10,"azure":12,"cli":41
  • 不只是举例说明看起来像这样......
  • 输入数组是否总是只有一项(对象)?如果不是,多个对象的输出会是什么样子?

标签: javascript arrays json ruby


【解决方案1】:

首先请注意,您根本不需要 jQuery。 jQuery 主要是用于修改 DOM 的工具。您只需要使用这种原生 JS 之类的数据结构即可。

要达到您的要求,您可以使用Object.keys() 获取原始数组中第 0 个对象的键,然后您可以使用map() 循环它们以从该数据构建一个新的二维数组:

var originalArr = [{
  "new": 122,
  "old": 3389,
  "boarding": 1,
  "aws": 10,
  "azure": 12,
  "cli": 41
}];

var newArr = Object.keys(originalArr[0]).map(function(key) {
  return [key, originalArr[0][key]];
});

console.log(newArr);

【讨论】:

    【解决方案2】:

    它很简单。只需将数组输入 Object.entries()。像这样 Object.entries(originalArr[0])

    【讨论】:

    • 不知道为什么这被否决了。在理想的世界中,它是一个很好的解决方案,问题是它在任何版本的 IE 中都完全不受支持
    【解决方案3】:

    一个简单的单行替代方案:

    const data = [{
      "new": 122,
      "old": 3389,
      "boarding": 1,
      "aws": 10,
      "azure": 12,
      "cli": 41
    }];
    
    const result = Object.keys(data[0]).map(k => ([k, data[0][k]]));
    
    console.log(result);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-28
      • 1970-01-01
      • 2020-03-31
      • 2017-07-30
      • 2018-11-13
      • 2011-01-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多