var jsonData = [
{ 'No.': 1,
'姓名': 'johnchu',
'性別': 'man',
'愛好': 'football,basketball',
'地區': 'NT',
'簡介': 'hello',
},
{ 'No.': 2,
'姓名': 'Chu Chung Him',
'性別': 'man',
'愛好': 'reading',
'地區': 'NT',
'簡介2': 'No information'
},
{ 'No.': 3,
'姓名': 'girl',
'性別': 'woman',
'愛好': 'football,basketball',
'地區': 'KW',
'簡介': 'lady',
},
{ 'No.': 4,
'姓名': 'No Name',
'性別': 'man',
'愛好': 'football,reading',
'地區': 'HKI',
'簡介': 'test',
},
{ 'No.': 5,
'姓名': 'shiny',
'性別': 'woman',
'愛好': 'football,basketball',
'地區': 'HKI',
'簡介': 'roy',
},
{ 'No.': 6,
'姓名': '',
'性別': 'man',
'愛好': 'football',
'地區': 'NT',
'簡介': '',
},
{ 'No.': 7,
'姓名': 'SHR',
'性別': 'man',
'愛好': 'football',
'地區': 'KW',
'簡介': 'fsdfs',
},
{ 'No.': 8,
'姓名': 'May',
'性別': 'woman',
'愛好': 'basketball,reading',
'地區': 'KW',
'簡介': 'Ray sheet'
},
{ 'No.': 9,
'姓名': 'dora',
'性別': 'woman',
'愛好': 'football,basketball',
'地區': 'NT',
'簡介2': 'testing'
},
{ 'No.': 10,
'姓名': 'cola',
'性別': 'woman',
'愛好': 'football,basketball',
'地區': 'HKI',
'簡介': 'coro => '
},
{ 'No.': 11,
'姓名': 'JANE',
'性別': 'woman',
'愛好': 'football,basketball,reading',
'地區': 'HKI',
'簡介': 'I AM JANE',
}];
//Method 1
function jsonData_To_Object(jsonData) {
return jsonData.flatMap(Object.keys)
.reduce((acc,key) => (acc[key] = jsonData.map(obj => obj[key]), acc)
, {});
};
//Method 2
function jsonData_To_Object(jsonData) {
var keys = [];
for(let i=0; i<jsonData.length; i++) {
for(let prop in jsonData[i]) {
if(keys.indexOf(prop) === -1) {
keys.push(prop);
}
}
}
var obj = {};
for(let i=0; i<keys.length; i++) {
var arr = [];
for(let j=0; j<jsonData.length; j++) {
arr.push(jsonData[j][keys[i]]);
}
obj[keys[i]] = arr;
}
return obj;
};
var newObj = jsonData_To_Object(jsonData);
console.log(newObj);
var obj =
{
"No.": [
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11
],
"姓名": [
"johnchu",
"Chu Chung Him",
"girl",
"No Name",
"shiny",
"",
"SHR",
"May",
"dora",
"cola",
"JANE"
],
"性別": [
"man",
"man",
"woman",
"man",
"woman",
"man",
"man",
"woman",
"woman",
"woman",
"woman"
],
"愛好": [
"football,basketball",
"reading",
"football,basketball",
"football,reading",
"football,basketball",
"football",
"football",
"basketball,reading",
"football,basketball",
"football,basketball",
"football,basketball,reading"
],
"地區": [
"NT",
"NT",
"KW",
"HKI",
"HKI",
"NT",
"KW",
"KW",
"NT",
"HKI",
"HKI"
],
"簡介": [
"hello",
undefined,
"lady",
"test",
"roy",
"",
"fsdfs",
"Ray sheet",
undefined,
"coro => ",
"I AM JANE"
],
"簡介2": [
undefined,
"No information",
undefined,
undefined,
undefined,
undefined,
undefined,
undefined,
"testing",
undefined,
undefined
]
};
//Method 1
function object_To_jsonData(obj) {
return Object.keys(obj).reduce((arr,key) => (
obj[key].map((value,i) =>
arr[i] = {...(arr[i] || {}), [key]: value}
)
), []);
};
//Method 2
function object_To_jsonData(object) {
var arr = [];
for(let i=0; i<Object.values(object)[0].length; i++) {
var obj = {};
for(let prop in object) {
obj[prop] = object[prop][i];
}
arr.push(obj);
}
return arr;
}
var new_jsonData = object_To_jsonData(obj);
console.log(new_jsonData);