Элементы преобразования JOLT на основе ключа - PullRequest
0 голосов
/ 29 марта 2020

Я пытаюсь найти правильный файл спецификации JOLT для ниже:

Входной файл:

{
  "network": "A",
  "ips": {
    "subnet1": "1.1.1.1",
    "subnet2": "1.1.1.2",
    "subnet3": "1.1.1.3",
    "subnet4": "1.1.1.4"
  }
}

Выходной файл:

{
  "allValues": [
    {
      "network": "A",
      "ips": {
        "subnet1": "1.1.1.1",
        "subnet2": "1.1.1.2"
      }
    },
    {
      "network": "A",
      "ips": {
        "subnet3": "1.1.1.3",
        "subnet4": "1.1.1.4"
      }
    }
  ]
}

На основе su bnet значений, я хочу сгруппировать IP-адреса (подсеть1 и подсеть2 в одном) и (подсеть3 и подсеть4 в другом), в то время как все должны иметь сетевое значение (A).

Может кто-нибудь помочь, пожалуйста.

1 Ответ

0 голосов
/ 01 апреля 2020

Если вы знаете, какие подсети принадлежат друг другу (например, subnet1 и subnet2), вы можете использовать что-то вроде следующего:

[
  {
    "operation": "shift",
    "spec": {
      "ips": {
        "subnet1": "allValues[0].ips.subnet1",
        "subnet2": "allValues[0].ips.subnet2",
        "subnet3": "allValues[1].ips.subnet3",
        "subnet4": "allValues[1].ips.subnet4"
      },
      "network": "allValues[0].network",
      "@(0,network)": "allValues[1].network"
    }
  }
]
...