Разделить строку на массив в nifi jolt - PullRequest
0 голосов
/ 01 апреля 2020

Я ищу спецификации толчка, чтобы разделить строковое значение treefield на список JSON объектов в указанном ниже формате.

Может ли кто-нибудь помочь мне с характеристиками толчка преобразовать нижеупомянутый ввод в вывод

Вход

[
  {
    "A": "value1",
    "B": "value2",
    "C": {
      "D": "x1",
      "E": {
        "treefield": "k1-value1#k2-value2"
      },
      "F": {
        "a": "x1",
        "x": {
          "y": 1
        }
      },
      "H": "x4"
    }
  }
]

Выход

[
  {
    "A": "value1",
    "B": "value2",
    "C": {
      "D": "x1",
      "E": {
        "treefield": [
          {
            "paramid": "k1",
            "paramvalue": {
              "string": "value1"
            }
          },
          {
            "paramid": "k2",
            "paramvalue": {
              "string": "value2"
            }
          }
        ]
      },
      "F": {
        "a": "x1",
        "x": {
          "y": 1
        }
      },
      "H": "x4"
    }
  }
]

1 Ответ

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

Вот пример, как вы можете справиться с этой проблемой. Я основывался на: https://github.com/bazaarvoice/jolt/issues/522

[
  {
    "operation": "shift",
    "spec": {
      "*": {
        "C": {
          "E": {
            "treefield": {
              "*#*": {
                "$(0,1)": "temp[]",
                "$(0,2)": "temp[]"
              }
            }
          }
        }
      }
    }
  },
  {
    "operation": "shift",
    "spec": {
      "temp": {
        "*": {
          "*-*": {
            "$(0,1)": "[#3].paramid",
            "$(0,2)": "[#3].paramvalue.string"
          }
        }
      }
    }
  }
]
...