【发布时间】:2020-04-22 22:55:22
【问题描述】:
我有将 tsv 文件转换为 json 的功能,但是我想在 json 输出中创建键值对。 tsvJSON 函数返回 json 但我想以某种结构格式化。
tsv.file
Row ID O ID O Date Ship Date Ship Type Customer ID Customer Name Seg Country City State Zip Code Region Product ID Category Sub-Category Product Name Sales Quantity Discount Profit
1 PA-152156 11/9/20 01/19/16 Second Class CG-125 Clay bute Consumer United States Henderson Kentucky 42420 South FUR-BO-10001798 Furniture Bookcases Bush, Somerset Collection Bookcase? 261.96 2 0 41.9136
main.js
const tsvFileData = fs.readFileSync('./filename1.tsv');
const jsonRes = tsvJSON(tsvFileData.toString());
const fs = require('fs');
function tsvJSON(tsv){
var lines=tsv.split("\n");
var result = [];
var headers=lines[0].split("\t");
for(var i=1;i<lines.length;i++){
var obj = {};
var currentline=lines[i].split("\t");
for(var j=0;j<headers.length;j++){
obj[headers[j]] = currentline[j];
}
result.push(obj);
}
return result; //JSON
}
返回这个
[
{
"Row ID O ID O Date Ship Date Ship Type Customer ID Customer Name Seg Country City State Zip Code Region Product ID Category Sub-Category Product Name Sales Quantity Discount Profit": "1 PA-152156 11/9/20 01/19/16 Second Class CG-125 Clay bute Consumer United States Henderson Kentucky 42420 South FUR-BO-10001798 Furniture Bookcases Bush, Somerset Collection Bookcase? 261.96 2 0 41.9136"
}]
预期输出
[{
"Row ID": 1, "O ID":"PA-152156","O Date":"11/9/20" , "Ship Date": "01/19/16", and rest of the fields mapping
}]
【问题讨论】:
-
pattern "\t" 不适用于您的 tsv 文件。见这里regextester.com/?fam=115953
-
@Supercool 什么是正确的方法来实现这个可以分享一个例子?
-
我尝试了 split(/\s\s/) 它正在做一些接近预期结果的事情
标签: javascript arrays json csv