javascript - 解析和连接多个json文件
问题描述
我有几百个 json 文件要解析(700-800)。它们都遵循相同的表示,因此它们可以很容易地垂直连接(第二个在第一个下面,等等......)成一个大的单个对象数组。在现实生活中,该数组的长度将达到 2-3 百万。
我目前正在做的事情显示在附加的代码片段中。请问这样有效率吗,有没有更好的方法(希望更快)?
在我的带有英特尔 i7-8809G 处理器和 Windows 10 的机器上,此代码片段在 2.8 秒内运行
<!DOCTYPE html>
<html>
<head>
<!--d3 -->
<script src='https://d3js.org/d3.v4.min.js'></script>
</head>
<body>
<script>
var start = (new Date()).getTime();
var elapsed;
function my_loader(size) {
urls = d3.range(size).map(function (d) {
return make_url(d)
});
var q = d3.queue();
for (var i = 0; i < urls.length; i++) {
q = q.defer(d3.json, urls[i]);
}
q.await(onDataLoad('some value'));
}
function make_url(i) {
// This is just an example json. In real life I would have something like:
// url = "data/json/file_" + i + ".json"
url = "https://data.nasa.gov/resource/y77d-th95.json";
return url
}
function onDataLoad(param) {
// do something with the param here if needed. Here it is not used
var data = [];
return (err, ...args) => {
//concatenate them all
args.forEach(d => {
data = [...data, ...d]
});
console.log('data loaded: ' + data.length);
elapsed = (new Date()).getTime() - start;
console.log('Elapsed time: ' + elapsed/1000 + ' secs');
}
}
num_of_jsons = 500;
my_loader(num_of_jsons);
</script>
</body>
</html>
解决方案
推荐阅读
- c++ - 错误的运算符重载、CRTP、C++
- javascript - 根据条件从二维数组中删除单个数组
- postgresql - 从具有相似日期 pgSQL 的另一个表中选择值
- reporting-services - 我如何强制 SSRS 打破 *in* tablix 行而不是之间?
- firebase - Firebase 登录:用户可以使用错误的凭据登录
- python - Python:我如何读取(不运行)shell脚本,沿途插入参数
- javascript - 如何找出 chrome 阻止请求的原因?
- neural-network - 只有一个元素张量可以转换为 python 标量
- java - Android Studio:无法找到明确的活动类,但活动已在 AndroidManifest.xml 中声明
- django - 如何在 django 中按自定义区域过滤位置?