csvtojson 如何添加行号

问题描述

这里是 node.js 的新手。我正在使用 csvtojson 将 csv 读入对象 fileDataObject,如下所示:

    const csv=require("csvtojson");
    csv(
        {
            delimiter:mq.delim,trim:false
        }
    )
    .fromFile(mq.folder_pending+'\\'+file)
    .then((fileDataObject)=>{

我希望 fileDataObject一个名为 row_number 的附加“列”(属性),它表示文件的源代码行号。

文档中提到了一些关于 file line hook内容,但我不知道如何使用钩子。

解决方法

包自述文件中已经有一个示例。

获得 fileDataObject(在您的示例中)后,您只需添加一个列键

例如

  const csv=require('csvtojson')
csv()
.subscribe((jsonObj,index)=>{
    jsonObj.myNewKey='some value'
    // OR asynchronously
    return new Promise((resolve,reject)=>{
        jsonObj.myNewKey='some value'; <-- add column here
        resolve();
    })
})
.on('data',(jsonObj)=>{
    console.log(jsonObj.myNewKey) // some value
});

以你为例

const csv=require("csvtojson");
csv(
    {
        delimiter:mq.delim,trim:false
    }
)
.fromFile(mq.folder_pending+'\\'+file)
.then((fileDataObject)=>{
     //if you already have a javascript object,u can manually do it too.
     let counter = 1;
     const fileDatWithRowNumber = fileDataObject.map( item => {
          item.row_number = counter;
          counter++; 
          return item
     })
     return fileDatWithRowNumber
}