使用缓冲区和流写入数据
Using buffers and streams to write the data
我需要一个 node.js 程序用于以下
我有一个巨大的 JSON 数据,其中有数千条记录,我需要使用流将其复制到另一个文件。但是有 3 个键值对,但我只需要复制一个键值(即)我有 name
、age
和 city
,但我只需要在另一个文件中的名称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.
有关详细信息,请参阅文档:
我需要一个 node.js 程序用于以下
我有一个巨大的 JSON 数据,其中有数千条记录,我需要使用流将其复制到另一个文件。但是有 3 个键值对,但我只需要复制一个键值(即)我有 name
、age
和 city
,但我只需要在另一个文件中的名称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.
有关详细信息,请参阅文档: