我想从带有jq的json文件中获取不同的值,但是我无法获取处于不同级别的值。
这是我拥有的json:
{
"id": 132,
"status": "succeeded",
"project": "TEST-Sylvain",
"executionType": "user",
"user": "sthirard",
"date-started": {
"unixtime": 1560946609000,
"date": "2019-06-19T12:16:49Z"
},
"date-ended": {
"unixtime": 1560946613000,
"date": "2019-06-19T12:16:53Z"
},
"job": {
"id": "7a8dfbb0-a4b1-4309-8b76-f04cd0f03af2",
"averageDuration": 3060,
"name": "TEST_chainage_job",
"group": "DEPLOYMENT",
"project": "TEST-Sylvain",
"description": "JOb d'installation ",
},
"description": "hostname [... 4 steps]",
"argstring": null,
"successfulNodes": [
"acde",
"bfgh"
]
}
我可以获取ID /用户,但无法获取日期字段。
jq '.executions[0] | "\(.id) \(.user)"' response.json
我尝试了
jq '.executions[0] | .date-started.date' response.json
但这不起作用
你能帮我吗?
谢谢
答案 0 :(得分:0)
以明显的方式修复了给定的JSON之后,对jq的以下调用产生了如下所示的结果:
$ jq -r '[.id, .user, ."date-started".date] | join(" ")' input.json
132 sthirard 2019-06-19T12:16:49Z
您可能想考虑使用@csv
或@tsv
而不是join
;并且您可能必须在上述管道之前加上.executions[0] |
。
答案 1 :(得分:0)
您可以尝试执行以下操作:
jq '.executions[0] | "\(.id) \(.user) \(."date-started".date)"' response.json