Как добавить атрибут в существующий массив, используя JoltTransformJson в Apache-NiFi - PullRequest
0 голосов
/ 12 февраля 2019

Если ввод выглядит примерно так:

{
"Vendor":[{"a":"..."},{"b":"..."}]
}

, а атрибут выглядит примерно так:

{
"Vendor":[{"c":"..."},{"d":"..."}]
}

как я могу сгенерировать этот вывод:

{
"Vendor":[{"a":"..."},{"b":"..."},{"c":"..."},{"d":"..."}]
}

Я думаю, что joltTransformJson - лучший вариант, но я не смог сгенерировать желаемый результат.

Ответы [ 2 ]

0 голосов
/ 21 февраля 2019

Если атрибут назван json, тогда это должно работать:

[
  {
    "operation": "default",
    "spec": {
     // extract vendor array from json attribute and put it in a temporary array
     "tempArray": ${json:jsonPath('$.Vendor')}
    }
  },
  {
    "operation": "shift",
    "spec": {
     "Vendor": "Vendor", // keep Vendor array as is
     "tempArray": { // put temp array elements inside Vendor
        "*": "Vendor"
     },
     "*": "&" // keep all of the other elements of the json 
    }
  }
]

Я предоставил пояснения в комментариях, не забудьте удалить их, хотя json будет действительным!

0 голосов
/ 15 февраля 2019

Как насчет помещения атрибута в контент с использованием процессора AttributesToJson, а затем слияния двух потоковых файлов с помощью процессора MergeContent?

...