gpt4 book ai didi

json - 如何通过管道传递 JSON 以在 Node.js 中运行?

转载 作者:太空宇宙 更新时间:2023-11-03 23:21:30 25 4
gpt4 key购买 nike

我问了这个问题:

How to pipe to function in node.js?

但我发现使用 JSON 时并不那么容易。由于 JSON 以 block 的形式进行流式传输,因此当您尝试 JSON.parse 不代表完整 JSON 对象的 block 时,它会中断。

以下代码适用于小型 JSON 文件,但适用于大型 JSON 文件。在流式传输大型 JSON 文件时如何执行此操作?

const fs = require('fs')
const {Transform} = require('stream')

const jsonTransform = new Transform({
readableObjectMode: true,
writableObjectMode: true,
transform: (chunk, encoding, done) => {
let json = JSON.parse(chunk)
// manipulate json here
done(null, JSON.stringify(json, null, 2))
}
})

fs.createReadStream('input.json')
.pipe(jsonTransform)
.pipe(fs.createWriteStream('output.json'))

最佳答案

npm 上有大量模块可以处理这个问题,例如JSONstream 作者:Dominic Tarr https://github.com/dominictarr/JSONStream

另一种方法是确保 input.json 中的 json 以换行符分隔 (ndjson),然后您可以使用 https://github.com/maxogden/ndjson将每一行解析为一个对象,然后您可以通过管道将其进一步修改对象并将内容字符串化。

关于json - 如何通过管道传递 JSON 以在 Node.js 中运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49171957/

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