08
2022
06

JSON data to Object && Object to JSON data

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=0i<jsonData.lengthi++) {
    for(let prop in jsonData[i]) {
      if(keys.indexOf(prop) === -1) {
        keys.push(prop);
      }
    }
  }
  var obj = {};
  for(let i=0i<keys.lengthi++) {
    var arr = [];
    for(let j=0j<jsonData.lengthj++) {
       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=0i<Object.values(object)[0].lengthi++) {
    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);


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。