jq - добавить пользовательское сообщение на основе условного значения поля - PullRequest
0 голосов
/ 26 сентября 2019

Можно ли добавить пользовательское сообщение на основе условия в значении поля?В моем случае у меня есть следующий json:

{
    "plan_execution_metrics": {
        "total": 2,
        "passed": 1,
        "failed": 1
    },
    "journey_execution_metrics": {
        "total": 151,
        "passed": 140,
        "failed": 11
    }
}

Я хочу получить результирующий jq, который выводит «status» == «SUCCESS», если .journey_execution_metrics.journey_execution_metrics.failed == 0, и «status» == «FAILED»если не.Вот что у меня есть:

 curl -s http://www.mocky.io/v2/5d8bc42f350000ad02d47227 | jq -r '. | {type:"google-tests", plan_execution_metrics: .plan_execution_metrics, journey_execution_metrics: .journey_execution_metrics, success:(.journey_execution_metrics.failed ==0) }'

, но это возвращает логическое значение моего условия для успеха, а не "FAILED"

{
  "type": "google-tests",
  "plan_execution_metrics": {
    "total": 2,
    "passed": 1,
    "failed": 1
  },
  "journey_execution_metrics": {
    "total": 151,
    "passed": 140,
    "failed": 11
  },
  "success": false
}

1 Ответ

1 голос
/ 26 сентября 2019

Вот решение, отформатированное для удобства чтения:

.status |= 
  if .journey_execution_metrics.failed == 0
  then "SUCCESS"
  else "FAILED"
  end
...