基于部分元素响应解析JSON数据
Parsing JSON data based on partial element response
我有一个JSON响应其中大约有10,000个响应都是这种格式
{"SessionName": "rdp-tcp", "userid": "TEST:3:09-48-16-04-48-00", "ComputerName": "SERVER1", "LogonTime": "2016-08-09T04:48:00"}
我希望能够根据部分响应的匹配提取符合特定标准的响应
例如,我想要得到的是在4am-5am期间发生的所有登录
这可以通过能够查询以下内容来实现:
"LogonTime": "2016-08-09T04:48:00"
我如何与(例如使用Javascript)匹配JSON中的部分或开始与样式查询,以取出适合特定文本块的所有响应?
提前感谢!
你可以使用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中非常简单
-
首先将对象转换为数组
-
使用每个函数并比较日期
var logons = [];
yourObject.each(function (child){
if(Date.parse(child['LogonTime']) > Date.parse('01/01/2011 04:00:00') && Date.parse(child['LogonTime']) > Date.parse('01/01/2011 5:00:00')){
logons.push($(this));
}
});
注意:这段代码没有经过测试,可能会出现语法错误
相关文章:
- 如何将JSON数据导入我的ejs模板
- 如何将json数据显示为html
- Json数据包含日期和时间格式
- 用我的json数据填充JQuery DataTable
- AngularJS加载JSON数据,然后从中解析/加载HTML
- 使用jquery读取Json数据
- 如何将本地json数据加载到Extjs数据模型中
- 如何使用jquery ajax和jsonp在您自己的域上读取json数据
- React-将jSON数据传递给子组件的子组件
- 尝试从控制器加载带有json数据的Simile时间线
- Jquery:对返回JSON数据的php脚本的Ajax调用
- 如何通过数据分组将json数据转换为嵌套的json数据格式
- 如何在ReactJs中显示Json数据
- 使用javascript进行JSON数据检索
- tu如何将id放在填充了json数据的html表td上
- 将JSON数据从服务器加载到knockout.jsobservable中
- 使用JavaScript处理JSON数据
- 如何将json数据传递到.js文件
- 如何在带有nunjucks和gullow数据的JSON数据中使用带有HTML的内容
- 如何使用var名称调用JSON数据