javascript - Nodejs - 将制表符分隔的文件编写为 json 对象

标签 javascript json node.js fs

是否有一个 npm 模块可以将制表符分隔的文件转换为 JSON 对象,以便我可以通过某些属性查找数据。

示例:文件如下所示,

name sex age
A    M   20
B    F   30
C    M   40
D    F   50

JSON

[
  {
    "name": "A",
    "sex": "M",
    "age": "20"
  },
  {
    "name": "B",
    "sex": "F",
    "age": "30"
  },
  /* Etc. */
]

最佳答案

有时我不喜欢使用 Node 模块,这样我就可以在没有任何设置的情况下运行这些脚本......

IE。 nodejs ./convert-to-csv.js

这是一个 Nodejs 脚本,以防您选择不使用 Node 模块。

var fs = require("fs");
fs.readFile("./birthrate_poverty.txt","utf8", function(err, data){
    var rows = data.split("\n");
    var json = [];
    var keys = [];

    rows.forEach((value, index)=>{
        if(index < 1){// get the keys from the first row in the tab space file
            keys = value.split("\t");
        }else {// put the values from the following rows into object literals
            values = value.split("\t");
            json[index-1] = values.map((value, index) => {
                return {
                    [keys[index]]: value
                }
            }).reduce((currentValue, previousValue) => {
                return {
                    ...currentValue,
                    ...previousValue
                }
            });
        }
    })


    // convert array of objects into json str, and then write it back out to a file
    let jsonStr = JSON.stringify(json);
    fs.writeFileSync("./birthrate_poverty.json", jsonStr, {encoding: "utf8"})
});

关于javascript - Nodejs - 将制表符分隔的文件编写为 json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42588951/

相关文章:

c# - 在自定义AuthorizeAttribute中获取Post请求参数

mysql - Sequelize "unique: true"使用不同的键名两次制作相同的唯一键

javascript - 使用bulkDelete时出现 promise 拒绝错误

javascript - Angular 应用程序中函数运行时传递的值不可用

javascript - JavaScript中instanceof是如何实现的

xml - JSON 是一种语言吗?如果不是,它会如何分类?

javascript - 如何在单个存储库中与其他团队共享本地 npm 包?

JavaScript 访问父元素

javascript - 如何使用 polymer.js 切换元素的隐藏/显示

json - 如何通过去提取 repo 协议(protocol)的 stargazers_count 来提取 json api?