Javascript 生成包含数百万对象的大型JSON文件
我希望这是一个提出这个问题的合适地方,而且这不是一个不可能的问题,但我正在从事一个主要使用javascript的项目,我想知道是否有一种方法可以生成一个巨大的JSON文件,其中只包含一个对象数组,但可以容纳说。。。超过十亿个物体!这些对象实际上只包含1>某些inputNum中的数字(例如,inputNum可以是类似9999999999的数字)。这样,我和我的团队就不必一直数到非常大的数字,不必一直数到一个数组,也不必在工作和计算数据时不断出现内存泄漏。我们的数据非常大,而且是令人讨厌的数字 我有创建json对象并推送它的代码,它可以工作,但似乎无法继续计数超过某个大的数字(999999是我能得到的最大值),然后我的内存用完了,无法完成任务。我试着将JSON分解成可能的“块”,这样我就可以将它们“缝合”在一起,哈哈,但是当我试图从一个高的数字开始计数时,比如说:999999到99999999,以继续我的顺序计数,我的控制台崩溃了 我知道这需要大量的写入和推送,这也不适用于消费者,它将存储在我们的客户端以及专用存储设备上,因此文件大小不成问题。这是Javascript可能的任务吗?这可能是执行此任务的解决方案吗 我的对象示例仅供参考:Javascript 生成包含数百万对象的大型JSON文件,javascript,node.js,json,Javascript,Node.js,Json,我希望这是一个提出这个问题的合适地方,而且这不是一个不可能的问题,但我正在从事一个主要使用javascript的项目,我想知道是否有一种方法可以生成一个巨大的JSON文件,其中只包含一个对象数组,但可以容纳说。。。超过十亿个物体!这些对象实际上只包含1>某些inputNum中的数字(例如,inputNum可以是类似9999999999的数字)。这样,我和我的团队就不必一直数到非常大的数字,不必一直数到一个数组,也不必在工作和计算数据时不断出现内存泄漏。我们的数据非常大,而且是令人讨厌的数字 我有
再说一次,我知道这很疯狂!它甚至可能不必是那么高的一个数字,但我可以计算并推送到一个JSON文件的最高值是多少?谢谢你的帮助,谢谢
代码如下:
const fs = require("fs");
let inputNum = 9999999;
async function readSequenceJSON() {
let data = await fs.promises.readFile("./numberline.json");
return JSON.parse(data);
}
function writeSequenceJSON(data) {
let str = JSON.stringify(data);
return fs.promises.writeFile("./numberline.json", str);
}
async function nextSequence(inputNum) {
let data = await readSequenceJSON();
for (let i = 0; i <= inputNum; i++) {
let iSquared = i + i;
data.push({ i, iSquared });
}
writeSequenceJSON(data);
}
nextSequence(inputNum)
.then(() => {
console.log("done");
})
.catch((err) => {
console.log(err);
});
const fs=require(“fs”);
设inputNum=9999999;
异步函数readSequenceJSON(){
让data=wait fs.promises.readFile(“./numberline.json”);
返回JSON.parse(数据);
}
函数writeSequenceJSON(数据){
让str=JSON.stringify(数据);
返回fs.promises.writeFile(“./numberline.json”,str);
}
异步函数nextSequence(inputNum){
让data=wait readSequenceJSON();
for(设i=0;i{
控制台日志(“完成”);
})
.catch((错误)=>{
控制台日志(err);
});
您已经有了答案
这一定是内存问题
没有像这样的最高值,我可以计数并推送到一个JSON文件中
不要将JSON数据保存在内存中,而是将它们保存在DB中。MongoDB旨在以JSON格式提供数据。您已经有了答案
这一定是内存问题
没有像这样的最高值,我可以计数并推送到一个JSON文件中
不要将您的JSON数据保存在内存中,而是将它们保存在数据库中。MongoDB旨在以JSON格式提供数据。我非常感谢您的回答,现在可以登录MongoDB。请查看我上面的代码,了解我如何为MongoDB做准备的建议。谢谢!@KingMuzenpm安装MongoDB
可能是您的第一步。您可以推送您的每个JSON使用顺序主键向DB对象。然后你可以使用inputNum
进行引用,我想。我很感谢你的回答,现在可以登录MongoDB了。任何关于我上面的代码的建议,我如何为MongoDB做准备?谢谢!@KingMuzenpm安装MongoDB
可能是你的第一步。你可以推送我的每个人我们的JSON对象使用顺序主键连接到数据库。然后你可以使用inputNum
进行引用,我猜。