Convert CSV Ke JSON Pada Javascript - CRUDPRO

Convert CSV Ke JSON Pada Javascript

Convert CSV Ke JSON Pada Javascript

Pelajari cara mudah mengconvert data CSV dalam string atau file ke string JSON di JavaScript.

library csvtojson memungkinkan Anda dengan cepat mengconvert CSV ke JSON dalam JavaScript.

index.js

import csvToJson from 'csvtojson';

const csvFilePath = 'data.csv';

const json = await csvToJson().fromFile(csvFilePath);
console.log(json);

Untuk file data.csv seperti ini:

data.csv

color,maxSpeed,age
"red",120,2
"blue",100,3
"green",130,2

Ini akan menjadi JSON yang dihasilkan.

output

[
  { color: 'red', maxSpeed: '120', age: '2' },
  { color: 'blue', maxSpeed: '100', age: '3' },
  { color: 'green', maxSpeed: '130', age: '2' }
]

Instal csvtojson

Sebelum menggunakan csvtojson, Anda perlu menginstalnya di proyek Anda. Ini dapat dilakukan dengan NPM atau Yarn CLI.

Instal csvtojson

Sebelum menggunakan csvtojson, Anda perlu menginstalnya di proyek Anda. Ini dapat dilakukan dengan NPM atau Yarn CLI.

npm dan csvtojson
#yarn
yarn tambahkan csvtojson

Setelah instalasi, Anda dapat mengimpornya ke dalam modul JavaScript Anda seperti ini:

import csvToJson from 'csvtojson';

// CommonJS
const csvToJson = require('csvtojson');

Konversikan file CSV ke JSON menggunakan fromFile()

Buat objek untuk mengconvert CSV dengan memanggil fungsi ekspor default dari modul csvtojson. Objek ini memiliki sejumlah metode, masing-masing terkait dalam beberapa cara untuk mengconvert CSV ke JSON, fromFile() menjadi salah satunya.

Transformasi adalah proses asinkron, sehingga dibutuhkan nama file CSV untuk mengubah dan mengembalikan Promise. Promise diselesaikan dengan string JSON yang dihasilkan.

Konversikan string CSV ke JSON menggunakan fromString()

Untuk mengconvert langsung dari string data CSV langsung dari file, Anda dapat menggunakan metode asinkron fromString() objek konverter sebagai gantinya.

index.js

import csvToJson from 'csvtojson';

const csv = `"First Name","Last Name","Age"
"Russell","Castillo",23
"Christy","Harper",35
"Eleanor","Mark",26`;
const json = await csvToJson().fromString(csv);
console.log(json);

Output

[
  { 'First Name': 'Russell', 'Last Name': 'Castillo', Age: '23' },
  { 'First Name': 'Christy', 'Last Name': 'Harper', Age: '35' },
  { 'First Name': 'Eleanor', 'Last Name': 'Mark', Age: '26' }
]

Sesuaikan konversi CSV ke JSON

Fungsi ekspor default csvtojson menerima objek yang digunakan untuk menentukan opsi untuk menyesuaikan proses konversi. Salah satu opsi tersebut adalah tajuk. Ini adalah array yang digunakan untuk menentukan header dalam data CSV.

index.js

import csvToJson from 'csvtojson';

const csv = `"First Name","Last Name","Age"
"Russell","Castillo",23
"Christy","Harper",35
"Eleanor","Mark",26`;
const json = await csvToJson({
  headers: ['firstName', 'lastName', 'age'],
}).fromString(csv);
console.log(json);

Output

[
  { firstName: 'Russell', lastName: 'Castillo', age: '23' },
  { firstName: 'Christy', lastName: 'Harper', age: '35' },
  { firstName: 'Eleanor', lastName: 'Mark', age: '26' }
]

Yang kedua adalah pembatas, yang digunakan untuk menunjukkan karakter yang memisahkan kolom.

import csvToJson from 'csvtojson';

const csv = `"First Name"|"Last Name"|"Age"
"Russell"|"Castillo"|23
"Christy"|"Harper"|35
"Eleanor"|"Mark"|26`;
const json = await csvToJson({
  headers: ['firstName', 'lastName', 'age'],
  delimiter: '|',
}).fromString(csv);

Output

[
  { firstName: 'Russell', lastName: 'Castillo', age: '23' },
  { firstName: 'Christy', lastName: 'Harper', age: '35' },
  { firstName: 'Eleanor', lastName: 'Mark', age: '26' }
]

Ia juga memiliki opsi abaikanKolom yang memberi tahu konverter untuk mengabaikan kolom tertentu menggunakan ekspresi reguler.

import csvToJson from 'csvtojson';

const csv = `"First Name"|"Last Name"|"Age"
"Russell"|"Castillo"|23
"Christy"|"Harper"|35
"Eleanor"|"Mark"|26`;
const json = await csvToJson({
  headers: ['firstName', 'lastName', 'age'],
  delimiter: '|',
  ignoreColumns: /lastName/,
}).fromString(csv);
console.log(json);js

Output

[
  { firstName: 'Russell', age: '23' },
  { firstName: 'Christy', age: '35' },
  { firstName: 'Eleanor', age: '26' }
]

mengconvert CSV ke larik baris JSON

Dengan menyetel opsi keluaran ke 'csv', Anda dapat membuat daftar larik, setiap larik mewakili satu baris, berisi nilai dari semua kolom di baris tersebut.

Misalnya:

index.js

import csvToJson from 'csvtojson';

const csv = `color,maxSpeed,age
"red",120,2
"blue",100,3
"green",130,2`;
const json = await csvToJson({
  output: 'csv',
}).fromString(csv);
console.log(json);

Output

[
  [ 'red', '120', '2' ],
  [ 'blue', '100', '3' ],
  [ 'green', '130', '2' ]
]

Konversi asli CSV ke JSON

Anda juga dapat mengconvert CSV ke JSON tanpa menggunakan library pihak ketiga.

index.js

function csvToJson(csv) {
  // \n or \r\n depending on the EOL sequence
  const lines = csv.split('\n');
  const delimeter = ',';

  const result = [];
  const headers = lines[0].split(delimeter);
  for (const line of lines) {
    const obj = {};
    const row = line.split(delimeter);
    for (let i = 0; i < headers.length; i++) {
      const header = headers[i];
      obj[header] = row[i];
    }
    result.push(obj);
  }
  // Prettify output
  return JSON.stringify(result, null, 2);
}

const csv = `color,maxSpeed,age
"red",120,2
"blue",100,3
"green",130,2`;
const json = csvToJson(csv);
console.log(json);

Output

[
  {
    "color": "color",
    "maxSpeed": "maxSpeed",
    "age": "age"
  },
  {
    "color": "\"red\"",
    "maxSpeed": "120",
    "age": "2"
  },
  {
    "color": "\"blue\"",
    "maxSpeed": "100",
    "age": "3"
  },
  {
    "color": "\"green\"",
    "maxSpeed": "130",
    "age": "2"
  }
]

Anda dapat memodifikasi kode di atas untuk bekerja dengan berbagai data CSV yang lebih kompleks.

Pelajari cara mudah mengconvert data CSV dalam string atau file ke string JSON di JavaScript.

library csvtojson memungkinkan Anda dengan cepat mengconvert CSV ke JSON dalam JavaScript.

index.js

import csvToJson from 'csvtojson';

const csvFilePath = 'data.csv';

const json = await csvToJson().fromFile(csvFilePath);
console.log(json);

Untuk file data.csv seperti ini:

data.csv

color,maxSpeed,age
"red",120,2
"blue",100,3
"green",130,2

Ini akan menjadi JSON yang dihasilkan.

output

[
  { color: 'red', maxSpeed: '120', age: '2' },
  { color: 'blue', maxSpeed: '100', age: '3' },
  { color: 'green', maxSpeed: '130', age: '2' }
]

Instal csvtojson

Sebelum menggunakan csvtojson, Anda perlu menginstalnya di proyek Anda. Ini dapat dilakukan dengan NPM atau Yarn CLI.

Instal csvtojson

Sebelum menggunakan csvtojson, Anda perlu menginstalnya di proyek Anda. Ini dapat dilakukan dengan NPM atau Yarn CLI.

npm dan csvtojson
#yarn
yarn tambahkan csvtojson

Setelah instalasi, Anda dapat mengimpornya ke dalam modul JavaScript Anda seperti ini:

import csvToJson from 'csvtojson';

// CommonJS
const csvToJson = require('csvtojson');

Konversikan file CSV ke JSON menggunakan fromFile()

Buat objek untuk mengconvert CSV dengan memanggil fungsi ekspor default dari modul csvtojson. Objek ini memiliki sejumlah metode, masing-masing terkait dalam beberapa cara untuk mengconvert CSV ke JSON, fromFile() menjadi salah satunya.

Transformasi adalah proses asinkron, sehingga dibutuhkan nama file CSV untuk mengubah dan mengembalikan Promise. Promise diselesaikan dengan string JSON yang dihasilkan.

Konversikan string CSV ke JSON menggunakan fromString()

Untuk mengconvert langsung dari string data CSV langsung dari file, Anda dapat menggunakan metode asinkron fromString() objek konverter sebagai gantinya.

index.js

import csvToJson from 'csvtojson';

const csv = `"First Name","Last Name","Age"
"Russell","Castillo",23
"Christy","Harper",35
"Eleanor","Mark",26`;
const json = await csvToJson().fromString(csv);
console.log(json);

Output

[
  { 'First Name': 'Russell', 'Last Name': 'Castillo', Age: '23' },
  { 'First Name': 'Christy', 'Last Name': 'Harper', Age: '35' },
  { 'First Name': 'Eleanor', 'Last Name': 'Mark', Age: '26' }
]

Sesuaikan konversi CSV ke JSON

Fungsi ekspor default csvtojson menerima objek yang digunakan untuk menentukan opsi untuk menyesuaikan proses konversi. Salah satu opsi tersebut adalah tajuk. Ini adalah array yang digunakan untuk menentukan header dalam data CSV.

index.js

import csvToJson from 'csvtojson';

const csv = `"First Name","Last Name","Age"
"Russell","Castillo",23
"Christy","Harper",35
"Eleanor","Mark",26`;
const json = await csvToJson({
  headers: ['firstName', 'lastName', 'age'],
}).fromString(csv);
console.log(json);

Output

[
  { firstName: 'Russell', lastName: 'Castillo', age: '23' },
  { firstName: 'Christy', lastName: 'Harper', age: '35' },
  { firstName: 'Eleanor', lastName: 'Mark', age: '26' }
]

Yang kedua adalah pembatas, yang digunakan untuk menunjukkan karakter yang memisahkan kolom.

import csvToJson from 'csvtojson';

const csv = `"First Name"|"Last Name"|"Age"
"Russell"|"Castillo"|23
"Christy"|"Harper"|35
"Eleanor"|"Mark"|26`;
const json = await csvToJson({
  headers: ['firstName', 'lastName', 'age'],
  delimiter: '|',
}).fromString(csv);

Output

[
  { firstName: 'Russell', lastName: 'Castillo', age: '23' },
  { firstName: 'Christy', lastName: 'Harper', age: '35' },
  { firstName: 'Eleanor', lastName: 'Mark', age: '26' }
]

Ia juga memiliki opsi abaikanKolom yang memberi tahu konverter untuk mengabaikan kolom tertentu menggunakan ekspresi reguler.

import csvToJson from 'csvtojson';

const csv = `"First Name"|"Last Name"|"Age"
"Russell"|"Castillo"|23
"Christy"|"Harper"|35
"Eleanor"|"Mark"|26`;
const json = await csvToJson({
  headers: ['firstName', 'lastName', 'age'],
  delimiter: '|',
  ignoreColumns: /lastName/,
}).fromString(csv);
console.log(json);js

Output

[
  { firstName: 'Russell', age: '23' },
  { firstName: 'Christy', age: '35' },
  { firstName: 'Eleanor', age: '26' }
]

mengconvert CSV ke larik baris JSON

Dengan menyetel opsi keluaran ke 'csv', Anda dapat membuat daftar larik, setiap larik mewakili satu baris, berisi nilai dari semua kolom di baris tersebut.

Misalnya:

index.js

import csvToJson from 'csvtojson';

const csv = `color,maxSpeed,age
"red",120,2
"blue",100,3
"green",130,2`;
const json = await csvToJson({
  output: 'csv',
}).fromString(csv);
console.log(json);

Output

[
  [ 'red', '120', '2' ],
  [ 'blue', '100', '3' ],
  [ 'green', '130', '2' ]
]

Konversi asli CSV ke JSON

Anda juga dapat mengconvert CSV ke JSON tanpa menggunakan library pihak ketiga.

index.js

function csvToJson(csv) {
  // \n or \r\n depending on the EOL sequence
  const lines = csv.split('\n');
  const delimeter = ',';

  const result = [];
  const headers = lines[0].split(delimeter);
  for (const line of lines) {
    const obj = {};
    const row = line.split(delimeter);
    for (let i = 0; i < headers.length; i++) {
      const header = headers[i];
      obj[header] = row[i];
    }
    result.push(obj);
  }
  // Prettify output
  return JSON.stringify(result, null, 2);
}

const csv = `color,maxSpeed,age
"red",120,2
"blue",100,3
"green",130,2`;
const json = csvToJson(csv);
console.log(json);

Output

[
  {
    "color": "color",
    "maxSpeed": "maxSpeed",
    "age": "age"
  },
  {
    "color": "\"red\"",
    "maxSpeed": "120",
    "age": "2"
  },
  {
    "color": "\"blue\"",
    "maxSpeed": "100",
    "age": "3"
  },
  {
    "color": "\"green\"",
    "maxSpeed": "130",
    "age": "2"
  }
]

Anda dapat memodifikasi kode di atas untuk bekerja dengan berbagai data CSV yang lebih kompleks.