Javascript 使用节点JS将txt文件转换为json
我有一个简单的txt文件,其中包含这种格式的数据,有数百万行:Javascript 使用节点JS将txt文件转换为json,javascript,node.js,json,parsing,Javascript,Node.js,Json,Parsing,我有一个简单的txt文件,其中包含这种格式的数据,有数百万行: {"a":9876312,"b":1572568981512} {"a":9876312,"b":1572568981542} 我想使用NodeJs中的reduce函数和return语句将其转换为具有“dot”json扩展名的文件,可能如下所示: [{"a":9876312,"b":1572568981512}, {"a":9876312,"b":1572568981542}] 任何帮助都将非常感激。谢谢:) 到目前为止,我试过
{"a":9876312,"b":1572568981512}
{"a":9876312,"b":1572568981542}
我想使用NodeJs中的reduce函数和return语句将其转换为具有“dot”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)
我不断得到一个“未定义”的值我在您的代码中发现了一些问题
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);
这回答了你的问题吗?我在这件事上出错了。。但是我希望用reduce函数和return语句来实现它。您得到了什么错误?意外的标记,在JSONPrint中,您得到错误的
行
,因为错误告诉您其中一行不是JSON。在实现代码时,我注意到,如果我在代码中有一个类似“4611687012137402260”的数字。。它正在变成“4611687012137402000”。。因为它被视为一个数字。。有什么办法克服这个问题吗?@TheAlchest这个问题与const fs=require(“fs”)有关;const FILE_NAME=“abc.txt”;const x=mapEvents(getJSONFileData(文件名));函数getJSONFileData(文件名){return fs.readFileSync(文件名,“utf-8”).split(“\n”).filter(布尔);}函数mapEvents(事件){return JSON.stringify(事件)。replace(/\\\\\”“/g,”;)console.log(x);@TheAlchesman您可以使用上面的代码来修复此问题。这实际上会将整个json数组转换为一个字符串。它不再是有效的json了/