JavaScript, папапарс, возврат массива объектов - PullRequest
0 голосов
/ 08 января 2020

Я использую в Papaparse для преобразования файла CSV в json объект.

API ожидает данные следующим образом:

"data": [
        {
            "id": 1,
            "nombre": "AGUASBLANCAS-AGB",
            "descripcion": "-",
            "it_unidad_generadora": 0
        },
        {
            "id": null,
            "nombre": "AGUASBLANCAS-AGBQ",
            "descripcion": "-",
            "it_unidad_generadora": 403
        }
    ]

Но с Papaparse, CSV преобразуется в массив массивов каждой строки следующим образом:

"data":  [
    0: ["ID", "NOMBRE", "DESCRIPCIÓN", "IT UNIDAD GENERADORA"]
    1: ["1", "AGUASBLANCAS-AGB", "-", "0"]
    2: ["425", "AGUASBLANCAS-AGBQ", "-", "403"]
    ]

Есть ли способ создать массив JSON объекта с помощью Papaparse? а не массив массивов каждой строки

Ответы [ 3 ]

1 голос
/ 08 января 2020

Вместо Papaparse вы можете использовать эту библиотеку https://www.npmjs.com/package/csvtojson

Она имеет большое количество загрузок и может помочь вам с ожидаемыми данными.

0 голосов
/ 08 января 2020

Я сделал это следующим образом:

Papa.parse(event.target.files[0], {complete: async results => {
    let keys = results.data[0];
    // I want to remove some óíúáé, blan spaces, etc
    keys = results.data[0].map(v => v.toLowerCase().replace(/ /g,"_").normalize('NFD').replace(/[\u0300-\u036f]/g,""));

    let values = results.data.slice(1);
    let objects = values.map(array => {
      let object = {};
      keys.forEach((key, i) => object[key] = array[i]);
      return object;
    });
    // Now I call to my API and everything goes ok
    await uploadCSV(type, objects);
  }
});

Ничего общего с конфигом Papaparse, но мне пришлось использовать js для создания объектов с ключами желаний из первой строки массива массивов. .

0 голосов
/ 08 января 2020

Я не часто использую paparse, но думаю, что этот документ поможет вам https://github.com/PolymerVis/papa-parse/blob/master/README.md

...