什么是ndjson?
ndjson是一个轻量级的文本格式,它代表了一行JSON对象,每行都是有效的JSON。这种格式非常适用于处理大量数据集,因为它可以被流式读取和写入,而不需要在内存中保存整个数据集。
安装ndjson
你可以通过npm安装ndjson:
npm install ndjson
使用ndjson
写入ndjson数据
让我们从创建一个简单的数据集开始。我们将创建一个数组,其中每个元素都是一个JavaScript对象,表示水果及其属性:
const fruits = [ { name: "apple", color: "red", shape: "round" }, { name: "banana", color: "yellow", shape: "long" }, { name: "kiwi", color: "green", shape: "oval" } ];
我们将使用Node.js中的fs模块来将此数组写入文件中。我们先要使用ndjson库来将数据转换为ndjson格式:
const ndjson = require("ndjson"); const fs = require("fs"); const outputStream = fs.createWriteStream("fruits.ndjson"); fruits.forEach(fruit => { outputStream.write(ndjson.stringify(fruit) + "\n"); }); outputStream.end();
在上面的代码中,我们首先创建一个可写流,并将其绑定到名为“fruits.ndjson”的文件。然后我们循环遍历水果数组并将每个水果对象转换为ndjson格式字符串。我们在每个字符串后面添加一个换行符,以便在文件中写入每个对象时都有一个新行。
读取ndjson数据
现在我们已经成功地将水果数据写入了文件,接下来我们将使用ndjson库来读取该文件中的数据。我们可以使用Node.js中fs模块的createReadStream方法创建一个可读流,并将其传递给ndjson.parse方法,以解析我们之前写入的ndjson数据。
const inputStream = fs.createReadStream("fruits.ndjson"); inputStream.pipe(ndjson.parse()).on("data", fruit => { console.log(fruit.name); });
在上面的代码中,我们首先创建一个可读流,然后通过管道将其连接到ndjson.parse()方法。当我们从管道中读取每个水果对象时,我们将其打印到控制台上。
总结
在本教程中,我们介绍了什么是ndjson格式,如何安装并使用ndjson库来写入和读取ndjson数据。通过使用ndjson格式,我们可以处理大量数据集而不需要在内存中保存整个数据集。这种格式非常适合于处理数据流,例如日志文件、传感器数据等。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/42631