我有一个jQuery ajax请求,它以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}]预期产出:-
[
['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]
] 发布于 2017-11-27 10:21:49
您可以这样做(使用.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]));<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
动态获取密钥的:-
console.log(Object.keys($.parseJSON(json)[0]));由于您已经在ajax代码中使用了dataType:'json',所以您可以这样做:-
console.log(Object.keys(json[0]));发布于 2017-11-27 10:19:58
简单地将Object.values()与Array.map()组合在一起就可以做到这一点:
var res = arr.map(function(item) {
return Object.values(item);
});演示:
var arr = [{
"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 res = arr.map(function(item) {
return Object.values(item);
});
console.log(res);
发布于 2017-11-27 10:18:57
创建一个键数组(标题)作为第一行使用,并从对象中获取值。
解析 json,并使用Array#map迭代它。在每次迭代中,映射键数组,并从对象中提取值。
塞纳特键数组作为第一个数组。
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 keys = ['Day', 'Saavor Kitchen', 'Home Kitchen', 'Restaurant'];
var result = keys.concat(JSON.parse(json).map(function(o) {
return keys.map(function(key) {
return o[key];
});
}));
console.log(result);
https://stackoverflow.com/questions/47508369
复制相似问题