我有一些JSON输出我试图用jq解析。我阅读了一些关于过滤的例子,但我并不是真的理解它,而且我的输出比例子更复杂。我不知道从哪里开始Valid
,因为我不了解jq的语法,而且层次结构和术语也具有挑战性。我的JSON输出如下。我想返回ItemName
等于Item_2
的{{1}}的值。我怎么能这样做?
"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"
答案 0 :(得分:1)
除了初始和尾随JSON标量之外,您只需编写:
.[] | .Item[] | select( .ItemName == "Item_2" ) | .Valid
在您的特定情况下,为了确保忽略顶级JSON标量,您可以在上面加上前缀:
arrays |