我如何读取 gzip 中的 json 文件?

How can i read a json file in gzip?

有一个存档格式 gzip。有 json 个文件。我们需要依次获取每个文件,处理它以及其他 gzip 中写入的内容。我意识到我需要使用标准库 createReadStream 和 zlib。

好吧,按照 https://nodejs.org/api/zlib.html#zlib_examples 中的示例,可以对单个 gzip 文件完成以下过程:

var unzip = zlib.createUnzip();
var fs = require('fs');
var inp = fs.createReadStream('input.json.gz');
var out = fs.createWriteStream('output.json');

inp.pipe(unzip).pipe(out);

但是,如果一个 gzip 中有多个文件,我不确定该怎么做。我找不到执行此操作的文档,而且我发现可以从节点中的 gzip 文件中解压缩多个文件的唯一方法是,如果它们是 tar 首先。在node中解压tar.gz的过程可以找到here。按照这个例子,可以做这样的事情:

var unzip = zlib.createUnzip();
var fs = require('fs');
var tar = require('tar-fs');
var inp = fs.createReadStream('input.tar.gz');
var out = './output'; // output directory

inp.pipe(unzip).pipe(tar.extract(out));