Convertir des données CSV en liste d'objets JavaScript (JSON)
Concept et utilisation
La fonction arrayObjectsFromSV()
permet de convertir des données CSV en liste d'objets JavaScript (JSON).
Il est possible de définir les données et les séparateurs de données.
Fonction
arrayObjectsFromSV()
Retourne une liste d'objets (JSON) à partir d'un tableau de données CSV.
- Syntaxesyntaxe
arrayObjectsFromSV(donnees, options);
- Paramètres
donnees
(String)Le paramètre
données
de la fonctionarrayObjectsFromSV()
définit les données CSV à convertir en liste d'objets (JSON).options
(Object)Le paramètre
options
de la fonctionarrayObjectsFromSV()
définit les séparateurs contenus dans les données.- Propriétés
lineDelimiter
(String)columnDelimiter
(String)columnQuote
(String)
Exemple de conversion de données CSV en liste d'objets
var donnees = `Entête 1;Entête 2
Ligne 1, colonne 1;Ligne 1, colonne 2
Ligne 2, colonne 2;Ligne 2, colonne 2`;
var options = {
lineDelimiter: '\n',
columnDelimiter: ';'
};
arrayObjectsFromSV(donnees, options);
// renvoie : [
// { 'Entête 1': 'Ligne 1, colonne 1', 'Entête 2': 'Ligne 1, colonne 2' }
// { 'Entête 1': 'Ligne 2, colonne 2', 'Entête 2': 'Ligne 2, colonne 2' }
// ]
Code source de la fonction
function arrayObjectsFromSV(a, b) {
b = b || {};
var c = b.columnDelimiter || ',',
d = b.columnQuote || "'",
e = a.split(b.lineDelimiter || '\n'),
f = e[0].split(c),
g = f.length,
h = [];
e.slice(1).map(function(i) {
var j = false,
k = [],
l = {},
m = 0;
i.split('').forEach(function (n) {
if (n === d) {
j = !j;
} else {
if (n === c && !j) {
l[f[m]] = k.join('');
k = [];
m++;
if (m === g) {
m = 0;
}
} else {
k.push(n);
}
}
});
l[f[g-1]] = k.join('');
h.push(l);
});
return h;
}
Dernière mise à jour le .