/**
* CSVからJsonを作成する
* @param {String} csv
* @return {Json}
*/
const generateCsvToJson = (csv) =>
{
const csvLineList = csv.split('\n');
const columnNameList = [];
const resultArray = [];
for (const [index, line] of csvLineList.entries()) {
if (!line || !line.trim()) {
continue;
}
const columnList = line.split(',');
if (index === 0) {
for (const column of columnList) {
columnNameList.push(column);
}
continue;
}
const node = {};
for (const [columnIndex, column] of columnList.entries()) {
node[columnNameList[columnIndex]] = column;
}
resultArray.push(node);
}
return resultArray;
}
const x = "receive_date,shipped_date,pref_code,shipping_code\r\n2022-08-01 11:00:00,2022-08-02 16:35:00,1,e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\r\n2022-08-03 15:00:00,2022-08-04 18:29:00,2,60303ae22b998861bce3b28f33eec1be758a213c86c93c076dbe9f558c11c752\r\n";
const json = generateCsvToJson(x);
console.log(json);
console.log(json[0]['shipping_code']);
LyoqCiAqIENTVuOBi+OCiUpzb27jgpLkvZzmiJDjgZnjgosKICogQHBhcmFtIHtTdHJpbmd9IGNzdgogKiBAcmV0dXJuIHtKc29ufQogKi8KY29uc3QgZ2VuZXJhdGVDc3ZUb0pzb24gPSAoY3N2KSA9Pgp7CiAgY29uc3QgY3N2TGluZUxpc3QgPSBjc3Yuc3BsaXQoJ1xuJyk7CiAgY29uc3QgY29sdW1uTmFtZUxpc3QgPSBbXTsKICBjb25zdCByZXN1bHRBcnJheSA9IFtdOwogIGZvciAoY29uc3QgW2luZGV4LCBsaW5lXSBvZiBjc3ZMaW5lTGlzdC5lbnRyaWVzKCkpIHsKICAgICAgaWYgKCFsaW5lIHx8ICFsaW5lLnRyaW0oKSkgewogICAgICAgICAgY29udGludWU7CiAgICAgIH0KICAgICAgY29uc3QgY29sdW1uTGlzdCA9IGxpbmUuc3BsaXQoJywnKTsKICAgICAgaWYgKGluZGV4ID09PSAwKSB7CiAgICAgICAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBjb2x1bW5MaXN0KSB7CiAgICAgICAgICAgICAgY29sdW1uTmFtZUxpc3QucHVzaChjb2x1bW4pOwogICAgICAgICAgfQogICAgICAgICAgY29udGludWU7CiAgICAgIH0KCiAgICAgIGNvbnN0IG5vZGUgPSB7fTsKICAgICAgZm9yIChjb25zdCBbY29sdW1uSW5kZXgsIGNvbHVtbl0gb2YgY29sdW1uTGlzdC5lbnRyaWVzKCkpIHsKICAgICAgICAgIG5vZGVbY29sdW1uTmFtZUxpc3RbY29sdW1uSW5kZXhdXSA9IGNvbHVtbjsKICAgICAgfQoKICAgICAgcmVzdWx0QXJyYXkucHVzaChub2RlKTsKICB9CgogIHJldHVybiByZXN1bHRBcnJheTsKfQoKY29uc3QgeCA9ICJyZWNlaXZlX2RhdGUsc2hpcHBlZF9kYXRlLHByZWZfY29kZSxzaGlwcGluZ19jb2RlXHJcbjIwMjItMDgtMDEgMTE6MDA6MDAsMjAyMi0wOC0wMiAxNjozNTowMCwxLGUzYjBjNDQyOThmYzFjMTQ5YWZiZjRjODk5NmZiOTI0MjdhZTQxZTQ2NDliOTM0Y2E0OTU5OTFiNzg1MmI4NTVcclxuMjAyMi0wOC0wMyAxNTowMDowMCwyMDIyLTA4LTA0IDE4OjI5OjAwLDIsNjAzMDNhZTIyYjk5ODg2MWJjZTNiMjhmMzNlZWMxYmU3NThhMjEzYzg2YzkzYzA3NmRiZTlmNTU4YzExYzc1MlxyXG4iOwoKY29uc3QganNvbiA9IGdlbmVyYXRlQ3N2VG9Kc29uKHgpOwpjb25zb2xlLmxvZyhqc29uKTsKCmNvbnNvbGUubG9nKGpzb25bMF1bJ3NoaXBwaW5nX2NvZGUnXSk7Cg==