如何在给定日期之间选择json对象
下面是api的json响应。需要使用jq(在shell脚本中)从json获取汇率。 以下是条件: 对于给定的currencyfrom和currencyto,开始日期应等于或大于当前日期,结束日期应等于或小于当前日期如何在给定日期之间选择json对象,json,datetime,jq,Json,Datetime,Jq,下面是api的json响应。需要使用jq(在shell脚本中)从json获取汇率。 以下是条件: 对于给定的currencyfrom和currencyto,开始日期应等于或大于当前日期,结束日期应等于或小于当前日期 [ { "status": "ACTIVE", "startdate": "2019-01-31T00:00:00.000Z", "enddate": "2019-02-07T00:00:00.000Z", "s
[
{
"status": "ACTIVE",
"startdate": "2019-01-31T00:00:00.000Z",
"enddate": "2019-02-07T00:00:00.000Z",
"source": "default",
"exchangerate": "12",
"currencyfrom": "AUD",
"currencyto": "BRL",
"id": "64ce2916-af8a-42b9-9fb9-def47f824ea2"
},
{
"status": "ACTIVE",
"startdate": "2019-03-10T00:00:00.000Z",
"enddate": "2019-03-30T00:00:00.000Z",
"source": "default",
"exchangerate": "13",
"currencyfrom": "BRL",
"currencyto": "GBP",
"id": "4fd0dc10-d6b7-4298-924d-281a0d49c2e9"
},
{
"status": "ACTIVE",
"startdate": "2019-03-10T00:00:00.000Z",
"enddate": "2019-03-10T16:20:10.813Z",
"source": "default",
"exchangerate": "17",
"currencyfrom": "AUD",
"currencyto": "BRL",
"id": "52bfe481-f4cf-4822-9566-886c4faeaf10"
}
]
忽略时区注意事项,可以使用以下帮助器函数作为时间比较的基本构造块:
def secs: sub("\\....(?<z>.)$"; .z) | fromdate;
def secs:sub(\\....(.$);.z)fromdate;
使用它,您可以选择数组中的JSON对象,同时保留数组结构,如下所示:
now as $now
| map(select(.startdate|secs) <= $now and $now <= (.enddate|secs)) )
现在作为$now
|地图(选择(.startdate |秒)