查询JQ格式的JSONPath
Query JSONPath in JQ Format
我有 JSONPath:
$.endpointAgents[?(@.clients.userName=~ 'a')].agentId
它在 Linux 上的 jq
格式会如何显示??
jq '.endpointAgents [] | select(.clients.userName=~"a") | {agentId}')"
无效。
代码:
{
"endpointAgents": [
{
"agentId": "MyId",
"agentName": "MYNAME",
"location": {
"locationName": "location"
},
"clients": [
{
"userProfile": {
"userName": "Name"
},
"browserExtensions": [
{
"active": false
}
]
}
],
"totalMemory": "16222 MB",
"agentType": "enterprise"
}
]
}
I want to get userName value by specifying agentId
jq '.endpointAgents[] | select(.agentId == "MyId") | .clients[].userProfile.userName'
会输出"Name"
.endpointAgents[]
遍历每个 endpointAgent
select(.agentId == "MyId")
Select .agentId == "MyId"
所在的对象
.clients[].userProfile.userName
由于 clients
是一个数组,对其进行循环,并为每个对象显示 .userProfile.userName
。
Try it online!
如果我没理解错的话,您想使用名称匹配 a
.
的客户端生成端点的代理 ID
.endpointAgents[] |
select( any( .clients[].userProfile.userName; test("a") ) ) |
.agentId
要使用名称等于 a
的客户端生成端点的代理 ID,请改用以下内容:
.endpointAgents[] |
select( any( .clients[].userProfile.userName; . == "a" ) ) |
.agentId
我有 JSONPath:
$.endpointAgents[?(@.clients.userName=~ 'a')].agentId
它在 Linux 上的 jq
格式会如何显示??
jq '.endpointAgents [] | select(.clients.userName=~"a") | {agentId}')"
无效。
代码:
{
"endpointAgents": [
{
"agentId": "MyId",
"agentName": "MYNAME",
"location": {
"locationName": "location"
},
"clients": [
{
"userProfile": {
"userName": "Name"
},
"browserExtensions": [
{
"active": false
}
]
}
],
"totalMemory": "16222 MB",
"agentType": "enterprise"
}
]
}
I want to get userName value by specifying agentId
jq '.endpointAgents[] | select(.agentId == "MyId") | .clients[].userProfile.userName'
会输出"Name"
.endpointAgents[]
遍历每个endpointAgent
所在的对象select(.agentId == "MyId")
Select.agentId == "MyId"
.clients[].userProfile.userName
由于clients
是一个数组,对其进行循环,并为每个对象显示.userProfile.userName
。
Try it online!
如果我没理解错的话,您想使用名称匹配 a
.
.endpointAgents[] |
select( any( .clients[].userProfile.userName; test("a") ) ) |
.agentId
要使用名称等于 a
的客户端生成端点的代理 ID,请改用以下内容:
.endpointAgents[] |
select( any( .clients[].userProfile.userName; . == "a" ) ) |
.agentId