javascript - 在 Node.js 中迭代大量 JSON 文件

标签 javascript json node.js

我有以下代码,我想做的就是迭代一堆 JSON 文件 - 一个接一个 - 直到到达最后,输出每个文件中每个对象的时间戳。

var fs = require('fs');

// Get the contents of the directory and loop over it.
fs.readdir('./historical', function(err, list)
{
    for (var i = 0; i < list.length; i++)
    {
        // Get the contents of each file on iteration.
        var filename = list[i];

        fs.readFile("./historical/" + filename, function(err, data)
        {
            for (var index in data)
            {
                index = JSON.parse(index);
                console.log(index.timestamp);
            }
        });
    }
});

这似乎真的很难做任何事情......我根本无法让它真正发挥作用。

另外 - 我知道文件中的每个项目实际上都有一个时间戳值。

最佳答案

按照您的方式使用 for (var index in data) 循环是错误的。您需要首先解析 json 文件以获取 json 对象

var parsedData = JSON.parse(data);

然后你就可以按照你的意愿操作你的 json 对象了。如果能提供一下json文件的例子就更好了。但我描述了两个例子以防万一。

示例1:
如果 json 文件代表一个对象,则使用以下代码

console.log(parsedData.timestamp);

示例2:
如果 json 文件表示对象数组,则使用以下代码

for (var index in parsedData) {
    console.log(index.timestamp);
}

关于javascript - 在 Node.js 中迭代大量 JSON 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33797901/

相关文章:

javascript - 获取空白网页并显示 'event.returnValue is deprecated' 警告

javascript - 访问另一个函数内返回的原型(prototype)函数

java - org.json.JSONObject 类型的响应无法转换为 JSONArray

json - 是否可以使用 JOLT 连接 JSON 属性的值?

C# 使用 Newtonsoft.Json 将对象保存到不带属性名称的 json

node.js - Nodejs 最大套接字池设置

javascript - 包含可选子字符串的正确正则表达式匹配

javascript - 在 Flowplayer 中使用 seek() 和 FLV 文件

node.js - 如何使用azure函数在blob触发器上生成大blob文件的校验和?

javascript - 如何正确使用promise的resolve和reject