Извлечь несколько полей json с помощью nifi - PullRequest
1 голос
/ 30 мая 2020

Я новичок в Нифи. У меня ниже структура json, которая будет реализована с помощью Nifi ..


{
  "jobs": [
      {
            "jid": "1",
            "name": "job1",
            "state": "FAILED",
            "start-time": 12243
      },
      {
            "jid": "2",
            "name": "job2",
            "state": "FAILED",
            "start-time": 1233
      },
      {
            "jid": "3",
            "name": "job2",
            "state": "RUNNING",
            "start-time": 1223213
      }

  ]
}

Мне нужно, чтобы вывод был похож на отфильтрованный ниже, только данные о НЕПРАВИЛЬНОМ задании

{
  [
  job1,
  job2
  ]
}

Пожалуйста, помогите и спасибо аванс.

1 Ответ

0 голосов
/ 01 июня 2020

Этот spe c выведет JSON массив [job1, job2]:

[
  {
    "operation": "shift",
    "spec": {
      "jobs": {
        "*": {
          "state": {
            "FAILED": {
              "@(2,name)": "[]"
            }
          }
        }
      }
    }
  }
]

Ваш желаемый результат массива внутри фигурных скобок недействителен JSON, поскольку объектам нужен ключ / пары значений. Если вместо этого вам нужен массив в объекте, назовем ключ failed_jobs, и вы можете использовать следующий spe c:

[
  {
    "operation": "shift",
    "spec": {
      "jobs": {
        "*": {
          "state": {
            "FAILED": {
              "@(2,name)": "failed_jobs[]"
            }
          }
        }
      }
    }
  }
]
...