gpt4 book ai didi

javascript - NodeJS : Very large JSON from remote resource parsing

转载 作者:太空宇宙 更新时间:2023-11-04 01:05:23 24 4
gpt4 key购买 nike

我有一个来自外部资源的非常大的 JSON 文件(150k 行,~3mb),我想知道在 NodeJS 应用程序下使用它的最佳方法是什么。

我目前的策略是通过 ajax 调用获取它,解析它并将其存储在缓存中:

var options = {
host: url,
port: port,
path: '/file.json',
headers: {'Authorization': 'Basic ' + new Buffer(username + ':' +password).toString('base64')
}
};

http.get(options, function (res) {
var body = '';

res.on('data', function (chunk) {
body += chunk;
});

res.on('end', function () {
var JsonAsObject = JSON.parse(body);
StatisticsCache.set("Json", JsonAsObject, function(err, success) {
console.log("err is " + err + "success is " + success);
});
})
}).on('error', function (e) {
console.log("Got error: ", e);
});

但我的经验是这一行:

var JsonAsObject = JSON.parse(body);

需要很长时间(3 分钟),即使如此,在调试中也无法访问该对象。

最终我的目标是能够处理它的信息,

谢谢

最佳答案

使用流解析器,这样您就不会一次将所有内容存储在内存中。运行可能仍需要几秒钟,但至少您的应用程序在解析时不会停止。

尝试JSONStream :

var request = require('http').request,
parseUrl = require('url').parse,
JSONStream = require('JSONStream');

var url = parseUrl('…');
url.method = 'GET';

var req = request(url, function (res) {
res.pipe(JSONStream.parse()).on('data', function (obj) {
console.log(obj);
});
});
req.end();

关于javascript - NodeJS : Very large JSON from remote resource parsing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23581700/

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