使用javascript将JSON对象转换为数组

Sun*_*ary 0 javascript arrays jquery json object

我有一个jQuery ajax请求,它以json格式返回数据,我们如何将其转换并推入数组。TIA。

[{"Day":"Nov 03","Saavor Kitchen":null,"Home Kitchen":2,"Restaurant":null},
{"Day":"Nov 06","Saavor Kitchen":null,"Home Kitchen":1,"Restaurant":1},
{"Day":"Nov 07","Saavor Kitchen":null,"Home Kitchen":null,"Restaurant":1},
{"Day":"Nov 08","Saavor Kitchen":null,"Home Kitchen":2,"Restaurant":null},
{"Day":"Nov 09","Saavor Kitchen":null,"Home Kitchen":4,"Restaurant":null},
{"Day":"Nov 10","Saavor Kitchen":null,"Home Kitchen":3,"Restaurant":null},
{"Day":"Nov 11","Saavor Kitchen":null,"Home Kitchen":4,"Restaurant":null},
{"Day":"Nov 13","Saavor Kitchen":null,"Home Kitchen":4,"Restaurant":1},
{"Day":"Nov 14","Saavor Kitchen":null,"Home Kitchen":2,"Restaurant":1},
{"Day":"Nov 15","Saavor Kitchen":null,"Home Kitchen":5,"Restaurant":null},
{"Day":"Nov 16","Saavor Kitchen":null,"Home Kitchen":5,"Restaurant":null},
{"Day":"Oct 30","Saavor Kitchen":null,"Home Kitchen":null,"Restaurant":2},
{"Day":"Oct 31","Saavor Kitchen":null,"Home Kitchen":2,"Restaurant":3}]
Run Code Online (Sandbox Code Playgroud)

所需输出:-

    [
      ['Day', 'Saavor Kitchen', 'Home Kitchen', 'Restaurant '],
      ['Nov 03',  1000,      400, 50],
      ['Nov 04',  1170,      460, 90],
      ['Nov 05',  660,       1120, 58],
      ['Nov 06',  1030,      540, 88]
    ]  
Run Code Online (Sandbox Code Playgroud)

cнŝ*_*ŝdk 5

一个简单的组合Object.values()Array.map()将在这里做的伎俩:

var res = arr.map(function(item) {
  return Object.values(item);
});
Run Code Online (Sandbox Code Playgroud)

演示:

var res = arr.map(function(item) {
  return Object.values(item);
});
Run Code Online (Sandbox Code Playgroud)


Ana*_*Die 5

您可以按以下方式进行操作(使用.map.unshift):-

var json = '[{"Day":"Nov 03","Saavor Kitchen":null,"Home Kitchen":2,"Restaurant":null},{"Day":"Nov 06","Saavor Kitchen":null,"Home Kitchen":1,"Restaurant":1},{"Day":"Nov 07","Saavor Kitchen":null,"Home Kitchen":null,"Restaurant":1},{"Day":"Nov 08","Saavor Kitchen":null,"Home Kitchen":2,"Restaurant":null},{"Day":"Nov 09","Saavor Kitchen":null,"Home Kitchen":4,"Restaurant":null},{"Day":"Nov 10","Saavor Kitchen":null,"Home Kitchen":3,"Restaurant":null},{"Day":"Nov 11","Saavor Kitchen":null,"Home Kitchen":4,"Restaurant":null},{"Day":"Nov 13","Saavor Kitchen":null,"Home Kitchen":4,"Restaurant":1},{"Day":"Nov 14","Saavor Kitchen":null,"Home Kitchen":2,"Restaurant":1},{"Day":"Nov 15","Saavor Kitchen":null,"Home Kitchen":5,"Restaurant":null},{"Day":"Nov 16","Saavor Kitchen":null,"Home Kitchen":5,"Restaurant":null},{"Day":"Oct 30","Saavor Kitchen":null,"Home Kitchen":null,"Restaurant":2},{"Day":"Oct 31","Saavor Kitchen":null,"Home Kitchen":2,"Restaurant":3}]';

var columns = ['Day', 'Saavor Kitchen', 'Home Kitchen', 'Restaurant'];

var result = JSON.parse(json).map(function(obj) {
  return columns.map(function(key) {
    return obj[key];
  });
});
result.unshift(columns);
console.log(result);
console.log(Object.keys($.parseJSON(json)[0]));
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

动态获取密钥:

console.log(Object.keys($.parseJSON(json)[0]));
Run Code Online (Sandbox Code Playgroud)

由于您已经dataType:'json'在ajax代码中使用过,所以:

console.log(Object.keys(json[0]));
Run Code Online (Sandbox Code Playgroud)