In Jolt Как выбрать на основе значения jsonarray - PullRequest
1 голос
/ 04 июня 2019

В JOLT На основе значений jsonarray следует добавить ключ вывода и значение. В выводе CO2_VAL, CO_VAL, O3_VAL должно быть указано значение параметра в env_values. Итак, как применить вышеуказанный фильтр.

Входная полезная нагрузка:

{
  "id":"abcd",
  "env_values":[
    {
      "param":"CO2",
      "values":"20.0"
    },
    {
      "param":"CO",
      "values":"21.0"
    },
    {
      "param":"O3",
      "values":"22.0"
    }

    ]
}

Вывод:

{
  "sl":"abcd",
  "CO2_VAL":"20.0",
  "CO_VAL":"21.0",
  "O3_VAL":"22.0"
}

1 Ответ

1 голос
/ 04 июня 2019

Надеюсь, это то, что вы думаете.Прежде всего, мы добавляем «_VAL» к ключу.Во второй спецификации мы ставим ключи к значениям.И в конце мы соединяем каждый ключ со значением.

[
  {
    "operation": "shift",
    "spec": {
      "id": "s1",
      "env_values": {
        "*": {
          "param": {
            "*": "param[&2].t.&_VAL"
          },
          "values": "param[&1].values"
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "s1": "s1",
      "param": {
        "*": {
          "t": {
            "*": {
              "$": "param[&3].key"
            }
          },
          "values": "param[&1].value"
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "s1": "s1",
      "param": {
        "*": {
          "value": "@(1,key)"
        }
      }
    }
  }
]
...