首页 > 解决方案 > 使用 Node JS 将 txt 文件转换为 json

问题描述

我有一个简单的 txt 文件,其中包含数百万行的这种格式的数据:

{"a":9876312,"b":1572568981512}
{"a":9876312,"b":1572568981542}

我想使用NodeJs中的reduce函数和return语句将其转换为带有“点”json扩展文件的文件,可能如下所示:

[{"a":9876312,"b":1572568981512},
{"a":9876312,"b":1572568981542}]

任何帮助将不胜感激。谢谢 :)

到目前为止,我试过这个:

const fs = require('fs');
const FILE_NAME = 'abc.txt';
const x = mapEvents(getJSONFileData(FILE_NAME));

function getJSONFileData(filename) {
   return fs.readFileSync(filename, 'utf-8')
   .split('\n')
   .map(JSON.parse)
}

function mapEvents(events) {
events.reduce((acc, data) => {
  return [{data.a, data.b}]
});
}

console.log(x)

我不断得到一个“未定义”的值

标签: javascriptnode.jsjsonparsing

解决方案


我在您的代码中发现了一些问题。

  1. 您没有从 mapEvents 函数返回任何内容,这使得您的变量 x 值未定义。
  2. getJSONFileData 需要一些修复。

您可以使用以下代码:-

const fs = require('fs');
const FILE_NAME = 'abc.txt';
const x = mapEvents(getJSONFileData(FILE_NAME));

function getJSONFileData(filename) {
  return fs
    .readFileSync(filename, 'utf-8')
    .split('\n')
    .filter(Boolean)
    .map(JSON.parse);
}

function mapEvents(events) {
  return JSON.stringify(events);
}

console.log(x);

推荐阅读