javascript - 解析巨大的json数据

标签 javascript jquery json browser flot

我有一个包含服务器日志记录数据的 json 数组。使用 flot 我正在绘制图表,我已经成功地完成了 40 多个 json 对象。

我观察到数组中有 581901 个元素。 当我尝试解析时,浏览器崩溃了。 json 数据的大小约为 55MB。使用的浏览器是FF。有什么有效的方法可以做到这一点?

从 581901 行中提取 JSON 样本

{"date":"30-May-2016:00:00:00","url":"retriveImage","status":"200","data":"7480"}

我这样做:

for(var i=0;i<da.length;i++){
      var ts = moment(da[i].date,"D-MMM-YYYY");var ts1 = moment("30-May-2016","D-MMM-YYYY");
      if(ts.isSame(ts1)){
      var hour = parseInt(moment(da[i].date,"D-MMM-YYYY H:mm:ss").format("H"));
                var code =parseInt(da[i].status);
                if(code<500){
                    ct200++;
                }else{
                    if(code==503){
                        e503++;
                    }else{
                        eoth++;
                    }
                    ct503++;
                }
        }
        two.push([hour,ct200]);
        five.push([hour,ct503]);
      }

最佳答案

在解析 JSON 文件或 XML 文件时,您有两种选择。您可以完全在内存数据结构(树模型)中读取文件,这允许轻松随机访问所有数据。或者您可以以流方式处理文件。在这种情况下,解析器可以通过推出事件来进行控制(就像 XML SAX 解析器的情况一样),或者应用程序可以从解析器中提取事件。第一个的优点是很容易链接多个处理器,但很难实现。第二种的优点是它很容易编程,而且当你有需要的时候你可以停止解析。

看看这个:

https://www.ngdata.com/parsing-a-large-json-file-efficiently-and-easily/

关于javascript - 解析巨大的json数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37544970/

相关文章:

javascript - 我需要使用 jquery 让一个对象向左浮动,同时在 div 内淡出

javascript - 如何动态附加到 JavaScript 数组?

javascript - 动态创建的元素上的事件绑定(bind)?

javascript - 使用 d3 和 JSON 数据在同一页面中创建多个饼图

python - 如何使用 Python 过滤 JSON 数据?

javascript - Extjs动态加载html/javascript报错

javascript - 未将日期时间值设置为 Bootstrap DatetimePicker

用于保留用户操作值的 JavaScript 机制

apache - 批量导入 json 文档到 Apache CouchDb

javascript - 当某个div处于 View 中时,如何隐藏/显示div?