JavaScript:
Arbeta med CSV

Hur:

JavaScript har inte inbyggd funktionalitet för att tolka eller omvandla CSV till strängar, som det har med JSON. Dock kan du enkelt hantera CSV-data genom att antingen använda rå JavaScript för enklare uppgifter eller använda kraftfulla bibliotek som PapaParse för mer komplexa scenarier.

Grundläggande tolkning med rå JavaScript

För att tolka en enkel CSV-sträng till en array av objekt:

const csv = `name,age,city
John,23,New York
Jane,28,Los Angeles`;

function parseCSV(csv) {
  const lines = csv.split("\n");
  const result = [];
  const headers = lines[0].split(",");

  for (let i = 1; i < lines.length; i++) {
    const obj = {};
    const currentline = lines[i].split(",");
    
    for (let j = 0; j < headers.length; j++) {
      obj[headers[j]] = currentline[j];
    }
    result.push(obj);
  }
  
  return result;
}

console.log(parseCSV(csv));

Utskrift:

[
  { name: 'John', age: '23', city: 'New York' },
  { name: 'Jane', age: '28', city: 'Los Angeles' }
]

Grundläggande generering till CSV med rå JavaScript

För att konvertera en array av objekt till en CSV-sträng:

const data = [
  { name: 'John', age: 23, city: 'New York' },
  { name: 'Jane', age: 28, city: 'Los Angeles' }
];

function arrayToCSV(arr) {
  const csv = arr.map(row => 
    Object.values(row).join(',')
  ).join('\n');
  
  return csv;
}

console.log(arrayToCSV(data));

Utskrift:

John,23,New York
Jane,28,Los Angeles

Använda PapaParse för komplexa CSV-uppgifter

För mer komplexa scenarier är PapaParse ett robust bibliotek lämpligt för att tolka och omvandla CSV-filer med alternativ för strömmar, arbetare och hantering av stora filer.

Tolka CSV-fil eller sträng med PapaParse:

// Efter att ha lagt till PapaParse i ditt projekt
const Papa = require('papaparse');
const csv = `name,age,city
John,23,New York
Jane,28,Los Angeles`;

Papa.parse(csv, {
  complete: function(results) {
    console.log("Tolkat:", results.data);
  }
});

Genererar:

Tolkat: [
  ["name", "age", "city"],
  ["John", "23", "New York"],
  ["Jane", "28", "Los Angeles"]
]

Omvandla en array till en CSV-sträng med PapaParse:

const data = [
  { name: 'John', age: 23, city: 'New York' },
  { name: 'Jane', age: 28, city: 'Los Angeles' }
];

console.log(Papa.unparse(data));

Generera:

name,age,city
John,23,New York
Jane,28,Los Angeles

Dessa exempel illustrerar grundläggande och avancerad hantering av CSV i JavaScript, vilket möjliggör enkel datautbyte i webbapplikationer och mer därtill.