我有一个服务器URL的二维列表,其格式为
[["John",5,7,"something1"],
["David",4,2,"something2"],etc]
有没有一种快速的方法可以将此列表解析为具有指定密钥对的正确JSON格式,如下所示?
[{name:"John",
numbercolumn1:5,
numbercolumn2:7,
description:"something1"},
{},{}]
答案 0 :(得分:4)
如果这些都属于您的属性,则可以使用Array#map()
,如下所示:
var data = arr.map(function(a) {
return {
name: a[0],
columnNumber1: a[1],
columnNumber2: a[2],
description: a[3]
};
});
<强>演示:强>
var arr = [
["John", 5, 7, "something1"],
["David", 4, 2, "something2"]
];
var data = arr.map(function(a) {
return {
name: a[0],
columnNumber1: a[1],
columnNumber2: a[2],
description: a[3]
};
});
console.log(data);
答案 1 :(得分:1)
const bigList = [
['John', 1, 2],
['Doe', 5, 6]
];
const propertyNames = ['name', 'col1', 'col2'];
const newList = bigList.map( item => {
const newItem = {};
propertyNames.forEach( (propertyName, index) => {
newItem[propertyName] = item[index];
});
return newItem;
});
console.log(newList)
&#13;
答案 2 :(得分:1)
let data = [["John",5,7,"something1"],
["David",4,2,"something2"]];
let newData = data.map(d => (
{name: d[0], numbercolumn1: d[1], numbercolumn2: d[2], description: d[3]}
))
console.log(newData)
&#13;
或没有es6箭头功能:
var data = [["John",5,7,"something1"],
["David",4,2,"something2"]];
var newData = data.map(function(d) {
return {
name: d[0], numbercolumn1: d[1], numbercolumn2: d[2], description: d[3]
}
})
console.log(newData)
&#13;
希望这有帮助
答案 3 :(得分:1)
使用ES6,您可以使用destructuring assignment和short hand properties作为对象。
.git
&#13;
var data = [["John", 5, 7, "something1"], ["David", 4, 2, "something2"]],
result = data.map(([name, numbercolumn1, numbercolumn2, description]) => ({ name, numbercolumn1, numbercolumn2, description }));
console.log(result);
&#13;