使用jq解析JSON以返回另一个元素具有特定值的元素的值
我尝试用jq解析一些JSON输出。我读了一些关于过滤的例子,但我并不真正理解它,我的输出比例子更复杂。除了使用jq解析JSON以返回另一个元素具有特定值的元素的值,json,filtering,jq,Json,Filtering,Jq,我尝试用jq解析一些JSON输出。我读了一些关于过滤的例子,但我并不真正理解它,我的输出比例子更复杂。除了jq'.[].之外,我甚至不知道从哪里开始,因为我不理解jq的语法,层次结构和术语也很有挑战性。下面是我的JSON输出。我想返回Valid的值,其中ItemName等于Item_2。我该怎么做 "1" [ { "GroupId": "1569", "Title": "My_title", "Logo": "logo.jpg", "Tags": [
jq'.[].
之外,我甚至不知道从哪里开始,因为我不理解jq的语法,层次结构和术语也很有挑战性。下面是我的JSON输出。我想返回Valid
的值,其中ItemName
等于Item_2
。我该怎么做
"1"
[
{
"GroupId": "1569",
"Title": "My_title",
"Logo": "logo.jpg",
"Tags": [
"tag1",
"tag2",
"tag3"
],
"Owner": [
{
"Name": "John Doe",
"Id": "53335"
}
],
"ItemId": "209766",
"Item": [
{
"Id": 47744,
"ItemName": "Item_1",
"Valid": false
},
{
"Id": 47872,
"ItemName": "Item_2",
"Valid": true
},
{
"Id": 47872,
"ItemName": "Item_3",
"Valid": false
}
]
}
]
"Browse"
"8fj9438jgge9hdfv0jj0en34ijnd9nnf"
"v9er84n9ogjuwheofn9gerinneorheoj"
除了初始和后续JSON标量,您只需编写:
.[] | .Item[] | select( .ItemName == "Item_2" ) | .Valid
在您的特定情况下,为了确保忽略顶级JSON标量,您可以在上面加上前缀:
arrays |