所以我有一个JSON数组
[ [ "2015", "Honda", "CR-V", "1.5", "Turbo 7-Seater", "Automatic" ], [ "2016", "Mazda", "CX-5", "2.0", "Premium", "Manual" ] ] 实际上,我需要使用JSON数组中的值和键创建一个新的JSON对象,如下所示:
{
"root": {
"cars": [
{
"Year": "2015",
"Make": "Honda",
"Model": "CR-V",
"Engine": "1.5",
"Submodel": "Turbo 7-Seater",
"Transmission": "Automatic"
},
{
"Year": "2016",
"Make": "Mazda",
"Model": "CX-5",
"Engine": "2.0",
"Submodel": "Premium",
"Transmission": "Manual"
}
]
}
}我对JSON和Javascript很陌生。有人能提供一些建议和指导吗?谢谢!
发布于 2017-09-05 08:35:30
首先是Javascript、arrays和objects,而不是JsonArray和JSONObject。
如果object属性总是相同的,则只需将数组元素放到相应的对象中:
var results = {
"root": {
"cars": arr.map(function(item) {
return {
"year": item[0],
"make": item[1],
"model": item[2],
"engine": item[3],
"submodel": item[4],
"transmission": item[5]
}
})
}
}演示:
var arr = [
["2015", "Honda", "CR-V", "1.5", "Turbo 7-Seater", "Automatic"],
["2016", "Mazda", "CX-5", "2.0", "Premium", "Manual"]
];
var results = {
"root": {
"cars": arr.map(function(item) {
return {
"year": item[0],
"make": item[1],
"model": item[2],
"engine": item[3],
"submodel": item[4],
"transmission": item[5]
}
})
}
}
console.log(results);
发布于 2017-09-05 08:41:18
您可以将原始数组传递给此函数,以得到您期望的结果。我知道,您说过您是JS的新手,所以我的解决方案来自最简单的函数(forEach of JS);
var rootObj = [ [ "2015", "Honda", "CR-V", "1.5", "Turbo 7-Seater", "Automatic" ], [ "2016", "Mazda", "CX-5", "2.0", "Premium", "Manual" ] ];
function convert(arr) {
var result = { root: { cars: [ ] } };
arr.forEach(function(val) {
result.root.cars.push({
"Year": val[0],
"Maker": val[1],
"Model": val[2],
"Engine": val[3],
"Submodel": val[4],
"Transmission": val[5]
})
});
return result;
}
// You can test the result with this line of code
var output = convert(rootObj);
console.log('RESULT: ', JSON.stringify(output));https://stackoverflow.com/questions/46046186
复制相似问题