我正在使用 jsonata 库来比较从屏幕输入的值与包装器列表中的值。在这里,我从 UI 输入一个日期范围,并通过使用 DateTime.getTime() 方法将两个日期转换为 Unix Epoch 时间戳将其与我的包装器列表中的日期进行比较。
例如我的 JSON 是:
{
"lstData": [
{
"strFieldName":"ActivityDate",
"strValue": "2020-06-28"
"dateTimeStamp": 1594857600000
},
{
"strFieldName":"ActivityDate",
"strValue": "2020-07-10",
"dateTimeStamp": 1595116800000
},
{
"strFieldName":"ActivityDate",
"strValue": "2020-07-25",
"dateTimeStamp": 1595289600000
}
]
}
输入 StartDate和EndDate 分别为2020-07-20 和 2020-07-30,其中 StartDate.getTime() 为 1595721600000,EndDate.getTime() 为 1596240000000
Jsonata 查询是: lstData[strFieldName = "ActivityDate" and (dateTimeStamp >= 1595721600000 and dateTimeStamp <= 1596240000000)]
上述查询不起作用。我尝试了许多其他方法来使用 jsonata 进行日期比较,但没有任何效果。如果我删除上面的日期比较,则查询有效,即 lstData[strFieldName = "ActivityDate"] 有效。但是我试图找到的日期比较中有一些错误。
有人可以帮助我使用正确的 jsonata 日期语法吗?
谢谢, 施鲁蒂