从节点js中的文本文件中读取制表符分隔的数据

时间:2018-02-07 14:11:40

标签: javascript node.js regex

我有 .txt 文件,其中标签\t)和分号;)分开数据,我想读取数据并创建JSON对象。我尝试了正则表达式,但我无法创建正确的正则表达式。任何帮助将不胜感激。

的test.txt

sam tory 22;raj kumar 24

output.json

[
    {
        "Fname": "sam",
        "lastname": "troy",
        "Age": "22",
    },
    {
        "Fname": "raj",
        "lastname": "kumar",
        "Age": "24",
    }
]

3 个答案:

答案 0 :(得分:1)

您应该使用JavaScript split功能来分割文字。

var r = [];
var t = "sam	tory	22;raj	kumar	24";
var v = t.split(";");
for (var i = 0; i < v.length; i++) {
  var w = v[i].split("\t");
  r.push({
    Fname: w[0],
    lastname: w[1],
    Age: w[2]
  });
}
console.log(r);

答案 1 :(得分:1)

使用this._jsonService.getData(url).pipe( map(x => { return x.filter(x => x.id === param.id) }).subscribe(); 模块读取文件内容。

fs

然后映射各个条目以将它们转换为对象:

var content = fs.readFileSync("profiles.tsv", "utf8");

答案 2 :(得分:0)

使用库 csvtojson:https://www.npmjs.com/package/csvtojson

这是测试代码:

const csv=require('csvtojson')

const filePath='test.tsv'

var main = async () => {
  const jsonArray = await csv({delimiter:'\t'}).fromFile(filePath);
  console.log("jsonArray:", jsonArray);
}

main()