我正在尝试使用 JQ 命令来过滤 json 对象以有选择地提取键。这是我放置在文件 x.txt 中的示例对象:
{
"activities" : {
"-KSndgjqvmQkWVKHCpLh" : {
"create_device" : "...",
"stop_time_utc" : "2016-11-01T23:08:08Z"
},
"-KSoBSrBh6PZcjRocGD7" : {
"create_device" : "..."
},
"-KSptboGjo8g4bieUbGM" : {
"create_device" : "...",
"stop_time_utc" : "2017-01-17T23:08:08Z"
}
}
}
Run Code Online (Sandbox Code Playgroud)
以下命令可以提取所有活动密钥:
cat x.txt | jq '.activities | keys'
[
"-KSndgjqvmQkWVKHCpLh",
"-KSoBSrBh6PZcjRocGD7",
"-KSptboGjo8g4bieUbGM"
]
Run Code Online (Sandbox Code Playgroud)
我一直在谷歌搜索和试验几个小时,试图过滤对象以仅选择具有 stop_time_utc 值的活动条目,并使用类似“select(.stop_time_utc | fromdateiso8601 > now)”之类的东西来只选择具有已到期。例如,我想使用过滤器从示例对象创建一个数组,其中只有一个相关条目:
[
"-KSndgjqvmQkWVKHCpLh"
]
Run Code Online (Sandbox Code Playgroud)
使用 keys 选项尝试此操作是否走错了路?任何想法或建议将不胜感激。
谢谢