gpt4 book ai didi

javascript - 使用缓冲区和流写入数据

转载 作者:行者123 更新时间:2023-11-29 23:26:06 25 4
gpt4 key购买 nike

我需要一个 node.js 程序用于以下我有一个巨大的 JSON 数据,其中有数千条记录,我需要使用流将其复制到另一个文件。但是有 3 个键值对,但我只需要复制一个键值(即)我有 nameagecity,但是我只需要在另一个文件中包含 json 记录的名称。

如果有其他选择,你能建议我吗?此外,文件太大,包含数千条记录。

样本数据为

[  
{
"name":"John",
"age":31,
"city":"New York"
},
{
"name":"vamsi",
"age":31,
"city":"New York"
},
{
"name":"loga",
"age":31,
"city":"New York"
},
{
"name":"krishna",
"age":31,
"city":"New York"
},
{
"name":"kishore",
"age":31,
"city":"New York"
},
{
"name":"reddy",
"age":31,
"city":"New York"
}
]

最佳答案

使用流应该很容易:

首先安装一些用于流式传输 JSON 和转换的模块

npm install --save JSONStream scramjet

然后写代码:

const scramjet = require("scramjet");
const fs = require("fs");
const JSONStream = require("JSONStream")

fs.createReadStream(filename) // open the file
.pipe(JSONStream.parse('*')) // parse JSON array to object stream
.pipe(new scramjet.DataStream) // pipe for transformation
.map(({name}) => name) // extract "name" field from each object
.toJSONArray() // create an array stream
.pipe(fs.createWriteStream(outname)); // write to output.

有关更多信息,请参阅文档:

关于javascript - 使用缓冲区和流写入数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49250101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com