Json jq-基于属性的存在选择对象
乍一看,这听起来很直截了当,但我已经研究了几个小时了 我试图提取parameter对象的名称(无法知道),但前提是它列出了一个“defaultValue”键 输入对象(Azure ARM模板): 期望输出:Json jq-基于属性的存在选择对象,json,jq,Json,Jq,乍一看,这听起来很直截了当,但我已经研究了几个小时了 我试图提取parameter对象的名称(无法知道),但前提是它列出了一个“defaultValue”键 输入对象(Azure ARM模板): 期望输出: "componentName": { "defaultValue": "storage", "type": "string" } 我尝试了以下多次迭代,但都没有成功: .parameters[] | select( has( "defaul
"componentName": {
"defaultValue": "storage",
"type": "string"
}
我尝试了以下多次迭代,但都没有成功:
.parameters[] | select( has( "defaultValue"))
(将对象扩展到其名称“componentName”之外-尽管这样可以正确找到两者的匹配对象)
(同上)
(这也会错误地返回SubnetId对象,该对象没有“defaultValue”属性)
很明显,我误解了一些基本的东西。如果您能提供任何建议或指导,我将不胜感激。您想要的输出不是有效的JSON。我所知道的最接近的(无自定义字符串格式)是:
.parameters[] | select( has( "defaultValue"))
.parameters | map(select(has("defaultValue")))
.parameters | select( any (has( "defaultValue")))
jq '.parameters | map_values(select(has("defaultValue")))'
# => {
# "componentName": {
# "defaultValue": "storage",
# "type": "string"
# }
# }