Javascript Chalenging nodejs CSV到JSON解析问题

Javascript Chalenging nodejs CSV到JSON解析问题,javascript,node.js,json,csv,parsing,Javascript,Node.js,Json,Csv,Parsing,我现在面临一个特殊的问题。 我必须将CSV文件解析为JSON,通常CSV解析器工作正常,但是,这次我收到了一个带有可怕分隔符的CSV文件: 这些线条看起来像 val||"val"||"val"||"val" 问题是,您认为如何通过所有CSV行并将所有“| |”更改为简单的COMA 以下是我的解析代码: const fs=require('fs')) const path=require('路径') const csv=requir

我现在面临一个特殊的问题。 我必须将CSV文件解析为JSON,通常CSV解析器工作正常,但是,这次我收到了一个带有可怕分隔符的CSV文件:

这些线条看起来像

val||"val"||"val"||"val"
问题是,您认为如何通过所有CSV行并将所有“| |”更改为简单的COMA

以下是我的解析代码:

const fs=require('fs'))
const path=require('路径')
const csv=require('csv-parser')
//读取CSV并写入JSON
常量结果=[];
fs.createReadStream(“./CSV/users test.CSV”)
.pipe(csv({分隔符:'| |'}))
.on('data',(data)=>results.push(data))
.on('end',()=>{
控制台日志(结果);
fs.writeFileSync('./OutputJSON/data.json',json.stringify(结果),'utf-8',(err)=>{
if(err)console.log('That is bad')
})

});csv解析器只允许一个字符分隔符。您可以使用将传入文件预处理为行,然后删除讨厌的字段分隔符。像这样的。。。没有调试

const fs = require('fs')
const path = require('path')
const csv = require('csv-parser')
const es = require('event-stream')

const results = [];

fs.createReadStream('./CSV/users-test.csv')
  .pipe(es.split())             // line by line
  .pipe(es.replace('||','|')    // turn || into |
  .pipe(csv({separator: '|'}))  // handle CSV with | separator
  .on('data', (data) => results.push(data))
  .on('end', () => {      
      console.log(results);
      fs.writeFileSync('./OutputJSON/data.json', JSON.stringify(results),'utf-8', (err) => {
          if (err) console.log('That is bad')
      })
  });

你就快到了。看一看。请注意,如果应用于整个输入文本,它将替换其中出现的所有内容。感谢您的快速回答,但是,这样做只会将[]-返回到JSON文件。出于某种原因,它不会将数据推送到数组中。在我注释.pipe(es.split())-代码的工作原理与问题中的相同,但是使用.pipe(es.split())它会返回常量结果中的anly[];