Скорость сдвига толчка c, где выходной ключ - это входное значение - PullRequest
0 голосов
/ 06 августа 2020

упрощенный ввод

{
  "controllerServiceReferencingComponents": [
    {
      "revision": {
        "version": 5
      },
      "component": {
        "id": "9c050865-6d3a-3bb4-1ec5-b02fdfb103d1"
      }
    },
    {
      "revision": {
        "version": 1
      },
      "component": {
        "id": "a6ac00ee-0173-1000-24c9-70d812e16108"
      }
    }
  ]
}

желаемый результат

{
  "referencingComponentRevisions": {
    "9c050865-6d3a-3bb4-1ec5-b02fdfb103d1": {
      "version": 5
    },
    "a6ac00ee-0173-1000-24c9-70d812e16108": {
      "version": 1
    }
  }
}

В основном я хочу использовать значения из controllerServiceReferencingComponents.component.id на входе как keys of referencingComponentRevisions

Я пробовал варианты около

[
  {
    "operation": "shift",
    "spec": {
      "controllerServiceReferencingComponents": {
        "*": {
          "component": {
            "id": "referencingComponentRevisions."
          },
          "revision": {
            "clientId": "referencingComponentRevisions.&.clientID"
          }
        }
      }
    }
  }
]

в качестве моего spe c, но в итоге получаю такие выходы, как

{
  "referencingComponentRevisions" : [ "9c050865-6d3a-3bb4-1ec5-b02fdfb103d1", "a6ac00ee-0173-1000-24c9-70d812e16108" ]
}

где значение referencingComponentRevisions оказывается массивом, а не объектом

FWIW Я пытаюсь сделать это в NiFi JoltTransform JSON Процессор

1 Ответ

1 голос
/ 06 августа 2020

Работает с простыми сменами,

[
  {
    "operation": "shift",
    "spec": {
      "controllerServiceReferencingComponents": {
        "*": {
          "component": {
            "@(1,revision.version)": "referencingComponentRevisions.@(1,id).version"
          }
        }
      }
    }
  }
]
...