我有以下json输出
{
"metadata": {
"guid": "f9787342b-0d3b-45c5-b7a6-f61c2a12de00",
"url": "/v2/events/f67a342b-0d3b-45c5-b7a6-f61c2a12de00",
"created_at": "2018-03-07T17:15:22Z",
"updated_at": "2018-03-07T17:15:22Z"
},
"entity": {
"type": "audit.app.update",
"actor": "ae84a203-921d-41a0-97bf-26679342ef47",
"actor_type": "user",
"actor_name": "abc@xyz.org",
"actor_username": "abc.xyz.org",
"actee": "b9dba536-2aae-455d-aadc-8782bd5ee8d5",
"actee_type": "app",
"actee_name": "knpFileUpload",
"timestamp": "2018-03-07T17:15:22Z",
"metadata": {
"request": {
"state": "STARTED"
}
},
"space_guid": "bcz38b4b-9989-42d2-b6bd-702645e344cf",
"organization_guid": "axr09940a-a680-4f54-af30-3abfdb76ea2f"
}
},
我正在尝试获取updated_at的值,如果actee_type = app。
尝试以下命令
cf curl" / v2 / events?q = space_guid:bcz38b4b-9989-42d2-b6bd-702645e344cf" | jq -r'。[] | select(.ressources []。entity.actor_type ==" app")|的.resources [] metadata.updated_at'
但是收到的错误是无法使用字符串索引编号" ressources"如果我使用
jq -r' select(.ressources []。entity.actor_type ==" app")|的.resources [] metadata.updated_at'
无法迭代null。有人可以建议正确的语法。
TIA
答案 0 :(得分:0)
示例JSON与问题的其余部分之间存在不匹配,例如: JSON没有名为“ressources”的键,对应于“app”的键是“actee_type”(不是jq过滤器中的“actor_type”)。
基于示例JSON(减去错误的尾随逗号)和声明的查询,相应的jq过滤器将只是:
select (.entity.actee_type=="app")
| .metadata.updated_at
结果(使用-r命令行选项):
2018-03-07T17:15:22Z
根据评论,针对完整JSON的相关查询将如上所述,但前面是.resources[] |