javascript - 根据部分元素响应解析JSON数据

标签 javascript html json

我有一个 JSON 响应,其中包含大约 10,000 个响应,全部采用这种特定格式

{"SessionName": "rdp-tcp", "userid": "TEST:3:09-48-16-04-48-00", "ComputerName": "SERVER1", "LogonTime": "2016-08-09T04:48:00"}

我希望能够根据部分响应的匹配提取符合特定条件的响应

例如,我要获取的是凌晨 4 点到 5 点期间发生的所有登录

这可以通过查询以下内容来实现:

"LogonTime": "2016-08-09T04:48:00"

我如何(例如使用 Javascript)匹配 JSON 中的部分或 startswith 样式查询以提取适合特定文本 block 的所有响应?

提前致谢!

最佳答案

您可以使用 Array.prototype.filter()根据 LogonTime 过滤您的数组,使用 Date.prototype.getUTCHours() 获取小时数:

var json = [{
        "SessionName": "rdp-tcp",
        "userid": "TEST:3:09-48-16-04-48-00",
        "ComputerName": "SERVER1",
        "LogonTime": "2016-08-09T02:48:00"
    }, {
        "SessionName": "rdp-tcp",
        "userid": "TEST:3:09-48-16-04-48-00",
        "ComputerName": "SERVER1",
        "LogonTime": "2016-08-09T03:48:00"
    }, {
        "SessionName": "rdp-tcp",
        "userid": "TEST:3:09-48-16-04-48-00",
        "ComputerName": "SERVER1",
        "LogonTime": "2016-08-09T04:48:00"
    }],
    arrResult = json.filter(function(elem) {
        var date = new Date(elem.LogonTime),
            hour = date.getUTCHours();
        return hour >= 4 && hour <= 5;
    });

console.log(arrResult);

请注意,正如@Maxx 在他的评论中指出的那样,您应该在服务器端实现此逻辑,并为了性能进行一些分页,因为 10,000 是一个非常大的数字。

关于javascript - 根据部分元素响应解析JSON数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39014686/

相关文章:

javascript - 能够在 Chart.js 中旋转 y 轴标题

html - 使用 CSS 控制 <pre> 中的制表符空间?

html - 当容器 div 固定时,嵌套的子 div 不可滚动

java - 无法用Map、ObjectMapper解析Json

php - Fortnite Tracker API 仅在本地计算机上运行?

javascript - 通过jQuery替换div的内容

javascript - 使用按键查找括号语法时在 typescript 中使用可选链接

python - 字典对象搜索

javascript - CSS/JS 不适用于 firefox,适用于 chrome

java - 如何设置标题信息