Select 可能的相似键名中的值字段
Select value field out of possible similar key names
我有一个 pom.json 有一个错误:
{
"Components": [
{
"ARTIFACTID": "good artifact",
"BuildJobDate": "2020-01-20T16:39:50"
},
{
"ARTIFACT_ID": "bad artifact",
"BuildJobDate": "'2021-11-29T17:23:39'"
},
{
"ARTIFACTID": "another good artifact",
"BuildJobDate": "2022-01-26T21:18:20"
}
]
}
在我的安装脚本中,我收集了所有 ARTIFACTID
:
local -ra artifacts=( $(jq -r '.Components | .[].ARTIFACTID' "$manifest") )
试图通过 .[] | {ARTIFACTID, ARTIFACT_ID}
修复它,但无法理解如何只保留有效值
我的问题是:有没有办法在 jq
中的可能字段中 select 字段?
使用带有布尔条件的 select
表达式
.Components | map(select(.ARTIFACTID or .ARTIFACT_ID))
执行 {ARTIFACTID, ARTIFACT_ID}
需要任一键出现在结果对象中。因此,如果其中一个键不存在,它们将更新为 null
。使用 select
子句计算表达式并仅在计算结果为 true
时将结果生成到对象中
我有一个 pom.json 有一个错误:
{
"Components": [
{
"ARTIFACTID": "good artifact",
"BuildJobDate": "2020-01-20T16:39:50"
},
{
"ARTIFACT_ID": "bad artifact",
"BuildJobDate": "'2021-11-29T17:23:39'"
},
{
"ARTIFACTID": "another good artifact",
"BuildJobDate": "2022-01-26T21:18:20"
}
]
}
在我的安装脚本中,我收集了所有 ARTIFACTID
:
local -ra artifacts=( $(jq -r '.Components | .[].ARTIFACTID' "$manifest") )
试图通过 .[] | {ARTIFACTID, ARTIFACT_ID}
修复它,但无法理解如何只保留有效值
我的问题是:有没有办法在 jq
中的可能字段中 select 字段?
使用带有布尔条件的 select
表达式
.Components | map(select(.ARTIFACTID or .ARTIFACT_ID))
执行 {ARTIFACTID, ARTIFACT_ID}
需要任一键出现在结果对象中。因此,如果其中一个键不存在,它们将更新为 null
。使用 select
子句计算表达式并仅在计算结果为 true