gpt4 book ai didi

json - 使用jq解析json数据时获取父元素id

转载 作者:行者123 更新时间:2023-12-02 00:10:30 25 4
gpt4 key购买 nike

当子元素值为 client_release 时,我想从 JSON 数据打印父元素的 ID。

如果 data.properties.value==“client_release”

那么输出应该是

abcd1g2f,hirk5d7b3l

我尝试了下面的方法,但没有成功

jq '.data[].properties[]|select(.value=="client_release")|.id'

JSON数据如下:

{  
"data":[
{
"id":"abcd1g2f",
"resourceURI":"https://somerepo.com/service/local/privileges/abcd1g2f",
"name":"release1",
"description":"release1",
"type":"target",
"userManaged":true,
"properties":[
{
"key":"repositoryGroupId",
"value":""
},
{
"key":"method",
"value":"create,read"
},
{
"key":"repositoryId",
"value":"client_release"
},
{
"key":"repositoryTargetId",
"value":"1"
}
]
},
{
"id":"asdf1k4g",
"resourceURI":"https://somerepo.com/service/local/privileges/asdf1k4g",
"name":"release2",
"description":"release2",
"type":"target",
"userManaged":true,
"properties":[
{
"key":"repositoryGroupId",
"value":""
},
{
"key":"method",
"value":"read"
},
{
"key":"repositoryId",
"value":"formal_release"
},
{
"key":"repositoryTargetId",
"value":"1"
}
]
},
{
"id":"hirk5d7b3l",
"resourceURI":"https://somerepo.com/service/local/privileges/hirk5d7b3l",
"name":"release3",
"description":"release3",
"type":"target",
"userManaged":true,
"properties":[
{
"key":"repositoryGroupId",
"value":""
},
{
"key":"method",
"value":"create,read"
},
{
"key":"repositoryId",
"value":"client_release"
},
{
"key":"repositoryTargetId",
"value":"1"
}
]
}
]
}

最佳答案

这个想法是正确的,但是data[]数组应该在select语句之外,

jq '.data[] | select(.properties[].value == "client_release") | .id'

要将其放入问题中所示的 CSV 格式,请将结果放入数组中并使用 @csv 构造

jq --raw-output '[.data[] | select(.properties[].value == "client_release") | .id] | @csv'

关于json - 使用jq解析json数据时获取父元素id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51184524/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com