Как извлечь все атрибуты JSON и сопоставить с атрибутом flowfileattribute - PullRequest
0 голосов
/ 19 февраля 2019

Я хочу знать, доступен ли какой-либо способ для изменения "AttributesToJSON".Проблема в том, что я получаю json от третьего лица (это один объект, а не массив).JSON находится в потоке контента.Теперь я хочу поместить все атрибуты в JSON для атрибута потока-файла.и имя атрибута flowfile должно совпадать с атрибутом json.

, поэтому он совершенно противоположен AttributesToJSON, когда мы оставляем «Список атрибутов» пустым.

Я знаю, что могу извлечь атрибут через EvaluateJsonPath,но этот файл может иметь атрибуты в сотнях, и я не хочу вводить ошибку из-за копирования-вставки программистом.Кроме того, я хочу, чтобы эта часть кода была динамичной, если в json добавлен атрибут 101, я хочу, чтобы в файл потока был добавлен атрибут 101.

1 Ответ

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

Вы можете использовать ExtractText (используя .* группу захвата), чтобы извлечь все json в один атрибут, поэтому вы можете затем запросить этот json, используя jsonPath функцию языка выражения,Пример:

{
  "a": 1,
  "b": 2
}

UpdateAttribute: a = ${myJsonAttribute:jsonPath('$.a')} приведет к атрибуту с именем a со значением 1

...