我有一个简单的 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)
我不断收到“未定义”值
最佳答案
我在您的代码中发现了一些问题。
- 您还没有从 mapEvents 函数返回任何内容,这使得您的变量 x 值未定义。
- 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);
关于javascript - 使用 Node JS 将 txt 文件转换为 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59441333/