jq显示json文件的不同字段

时间:2019-06-19 13:32:19

标签: shell jq

我想从带有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

但这不起作用

你能帮我吗?

谢谢

2 个答案:

答案 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
相关问题