Introduction
Dans ce laboratoire, nous plongerons dans le monde de la programmation JavaScript et explorerons le processus de conversion de données JSON au format CSV. Grâce à ce laboratoire, vous apprendrez à utiliser des méthodes intégrées telles que join(), map() et reduce() pour convertir un tableau d'objets en une chaîne de caractères qui peut être facilement lue et manipulée dans un logiciel de tableur. Ce laboratoire est parfait pour ceux qui souhaitent approfondir leur compréhension de la manipulation de données en JavaScript.
Conversion de JSON au format CSV
Pour convertir un tableau d'objets en une chaîne de caractères de valeurs séparées par des virgules (CSV) avec des colonnes spécifiées, utilisez la fonction suivante :
const JSONtoCSV = (arr, columns, delimiter = ",") =>
[
columns.join(delimiter),
...arr.map((obj) =>
columns.reduce(
(acc, key) =>
`${acc}${!acc.length ? "" : delimiter}"${!obj[key] ? "" : obj[key]}"`,
""
)
)
].join("\n");
Pour l'utiliser, suivez ces étapes :
- Ouvrez le Terminal/SSH et tapez
nodepour commencer à pratiquer la programmation. - Appelez la fonction
JSONtoCSVavec les arguments suivants :arr: un tableau d'objets à convertir.columns: un tableau de chaînes de caractères qui spécifient les colonnes à inclure dans la sortie CSV.delimiter: une chaîne de caractères optionnelle qui spécifie le délimiteur à utiliser (valeur par défaut est',').
- La fonction retournera une chaîne de caractères CSV qui contient uniquement les colonnes spécifiées et les valeurs des objets.
- Si aucun délimiteur n'est spécifié, le délimiteur par défaut
','sera utilisé. - Des exemples d'utilisation de la fonction sont fournis dans le bloc de code ci-dessous.
JSONtoCSV(
[{ a: 1, b: 2 }, { a: 3, b: 4, c: 5 }, { a: 6 }, { b: 7 }],
["a", "b"]
); // 'a,b\n"1","2"\n"3","4"\n"6",""\n"","7"'
JSONtoCSV(
[{ a: 1, b: 2 }, { a: 3, b: 4, c: 5 }, { a: 6 }, { b: 7 }],
["a", "b"],
";"
); // 'a;b\n"1";"2"\n"3";"4"\n"6";""\n"";"7"'
Résumé
Félicitations ! Vous avez terminé le laboratoire de conversion de JSON au format CSV. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.