Javascript 将数组数组转换为JSON对象列表而不是JSON字符串

Javascript 将数组数组转换为JSON对象列表而不是JSON字符串,javascript,arrays,json,stringify,Javascript,Arrays,Json,Stringify,我正在尝试将数组数组转换为JSON对象列表 var headers = ['first name','last name','age'] var data = [ [ 'John', 'Gill', '21' ], [ 'Sai', 'Varun', '21' ] ] 当我们使用上述两个列表生成JSON列表时,输出如下: [ { 'First name': 'John', 'Last name': 'Gill', age: '21' }, { 'First name': 'Sai', '

我正在尝试将数组数组转换为JSON对象列表

var headers = ['first name','last name','age']

var data = [ [ 'John', 'Gill', '21' ], [ 'Sai', 'Varun', '21' ] ]
当我们使用上述两个列表生成JSON列表时,输出如下:

[ { 'First name': 'John', 'Last name': 'Gill', age: '21' },
  { 'First name': 'Sai', 'Last name': 'Varun', age: '21' } ]
但我需要输出为(双引号字符串,JSON不应该是字符串,而应该是JSON对象)

我尝试使用
JSON.stringify
,但结果不是
JSON对象
对,而是
JSON字符串
,这将阻止从整个列表中访问每个JSON


我已经看过很多这样的答案,但都是徒劳的。有人能解释一下吗

您可以首先使用对象生成一个数组,然后字符串化该数组

var headers=['first name','last name','age'],
数据=['John','Gill','21'],['Sai','Varun','21'],
结果=data.map(函数(a){
var对象={};
headers.forEach(函数(k,i){
对象[k]=a[i];
});
返回对象;
});
log(JSON.stringify(result));
控制台日志(结果)

.as console wrapper{max height:100%!important;top:0;}
您可以首先使用对象生成一个数组,然后字符串化该数组

var headers=['first name','last name','age'],
数据=['John','Gill','21'],['Sai','Varun','21'],
结果=data.map(函数(a){
var对象={};
headers.forEach(函数(k,i){
对象[k]=a[i];
});
返回对象;
});
log(JSON.stringify(result));
控制台日志(结果)
.as控制台包装{最大高度:100%!重要;顶部:0;}
var headers=['first name','last name','age']
变量数据=[['John','Gill','21'],['Sai','Varun','21']]
函数createItem(item){
newObject={}
item.map((val,i)=>newObject[headers[i]]=val)
返回新对象
}
console.log(data.map(item=>createItem(item))
var headers=['first name','last name','age']
变量数据=[['John','Gill','21'],['Sai','Varun','21']]
函数createItem(item){
newObject={}
item.map((val,i)=>newObject[headers[i]]=val)
返回新对象
}
console.log(data.map(item=>createItem(item))
DEMO

var headers=['first name','last name','age'];
var数据=['John','Gill','21'],['Sai','Varun','21'];
var res=data.map(函数(项){
var obj={};
for(标题中的变量i){
obj[headers[i]]=项目[i];
}
返回obj;
});
控制台日志(res)演示

var headers=['first name','last name','age'];
var数据=['John','Gill','21'],['Sai','Varun','21'];
var res=data.map(函数(项){
var obj={};
for(标题中的变量i){
obj[headers[i]]=项目[i];
}
返回obj;
});

控制台日志(res)
请添加您尝试过的内容。我尝试过使用我在回答中已经提到的
JSON.stringify
。您尝试过
JSON.parse(JSON.stringify(data))
?@GeomanYabes,它最终将返回
数据
对吗?!请添加您尝试过的内容。我尝试过使用我在回答中已经提到的
JSON.stringify
。您尝试过
JSON.parse(JSON.stringify(data))
?@GeomanYabes,它最终将返回
数据
对吗?!想说尼娜的解决方案更优雅、更短、更快。但令人惊讶的是,它毕竟慢了一点(35%):我想说尼娜的解决方案更优雅、更短、更快。但令人惊讶的是,它毕竟慢了一点(35%):
[ {"First name":"John","Last name":"Gill","age":"21"},
  {"First name":"Sai","Last name":"Varun","age":"21"} ]