我有如下所示的JSON,如何使用JavaScript将其转换为一个嵌套的JSON数组?
{
"Class": [
{
"StudentName": [
"Ash",
"Win"
],
"Rank": [
"1",
"2"
],
"ID": [
"001",
"002"
]
}
]
}
如何将其拆分为一个JSON嵌套数组:
{
"Class": [
{
"StudentName":"Ash",
"Rank":"1",
"ID":"001"
},
{
"StudentName":"Win",
"Rank":"2",
"ID":"002"
}
]
}
答案 0 :(得分:0)
没有魔术,只是为了循环:
const sourceObj = {
"Class": [
{
"StudentName": [
"Ash",
"Win"
],
"Rank": [
"1",
"2"
],
"ID": [
"001",
"002"
]
}
]
}
const studentData = sourceObj.Class[0]
const length = studentData["StudentName"].length
const targetObj = {
Class: []
}
for (i = 0; i < length; i++) {
targetObj.Class.push({
StudentName: null // Do a bare minimum yourself
})
}
console.log(targetObj)
答案 1 :(得分:0)
尝试这样。
我已经遍历了项目并生成了对象,并将其推送到类数组。
var api = $.getJSON("https://api.data.gov.sg/v1/environment/rainfall?date=2019-07-03",
function rainfall(data_rainfall){
apiGeo = { type: "FeatureCollection", features: []};
//---- apiGeo is populated here ----//
console.log(apiGeo); //displays data in GeoJSON format in browser console
});
function exportToJsonFile(apiGeo) {
let dataStr = JSON.stringify(apiGeo);
let dataUri = 'data:application/json;charset=utf-8,'+ encodeURIComponent(dataStr);
let exportFileDefaultName = 'data.json';
let linkElement = document.createElement('a');
linkElement.setAttribute('href', dataUri);
linkElement.setAttribute('download', exportFileDefaultName);
linkElement.click();
}
答案 2 :(得分:0)
您获得的json数据并不理想,但是可以正常工作:
const testData = {
"Class": [
{
"StudentName": [
"Ash",
"Win"
],
"Rank": [
"1",
"2"
],
"ID": [
"001",
"002"
]
}
]
};
const students = testData.Class[0].StudentName.map((student, index) => {
return {
name: testData.Class[0].StudentName[index],
rank: testData.Class[0].Rank[index],
ID: testData.Class[0].ID[index],
};
});
console.log(students);