Introduction
Dans ce laboratoire, nous allons explorer la manière de convertir une chaîne de caractères au format valeurs séparées par des virgules (CSV) en un tableau 2D d'objets à l'aide de JavaScript. Nous utiliserons diverses méthodes de manipulation de chaînes telles que split() et slice() ainsi que des méthodes de tableau telles que reduce() et map() pour réaliser cette conversion. Ce laboratoire vous aidera à comprendre comment travailler avec les données CSV en JavaScript et à les manipuler pour les transformer en un format facilement exploitable.
CSV vers JSON
Pour convertir une chaîne de caractères au format valeurs séparées par des virgules (CSV) en un tableau 2D d'objets et l'utiliser pour pratiquer la programmation, ouvrez le Terminal/SSH et tapez node. La première ligne de la chaîne est utilisée comme ligne de titres. Voici les étapes pour convertir le CSV en JSON :
- Utilisez
Array.prototype.indexOf()pour trouver le premier caractère de nouvelle ligne (\n). - Utilisez
Array.prototype.slice()pour supprimer la première ligne (ligne de titres) etString.prototype.split()pour la séparer en valeurs, en utilisant ledélimiteurfourni. - Utilisez
String.prototype.split()pour créer une chaîne pour chaque ligne. - Utilisez
String.prototype.split()pour séparer les valeurs dans chaque ligne, en utilisant ledélimiteurfourni. - Utilisez
Array.prototype.reduce()pour créer un objet pour les valeurs de chaque ligne, avec les clés extraites de la ligne de titres. - Omettez le second argument,
délimiteur, pour utiliser un délimiteur par défaut de,.
Voici le code :
const CSVToJSON = (data, delimiter = ",") => {
const titles = data.slice(0, data.indexOf("\n")).split(delimiter);
return data
.slice(data.indexOf("\n") + 1)
.split("\n")
.map((v) => {
const values = v.split(delimiter);
return titles.reduce(
(obj, title, index) => ((obj[title] = values[index]), obj),
{}
);
});
};
Pour tester la fonction, utilisez les exemples suivants :
CSVToJSON("col1,col2\na,b\nc,d");
// [{'col1': 'a', 'col2': 'b'}, {'col1': 'c', 'col2': 'd'}];
CSVToJSON("col1;col2\na;b\nc;d", ";");
// [{'col1': 'a', 'col2': 'b'}, {'col1': 'c', 'col2': 'd'}];
Sommaire
Félicitations ! Vous avez terminé le laboratoire CSV vers JSON. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.