Если вас беспокоит вопрос new lines
и json key/values
, используйте функции языка выражений NiFi для извлеченного атрибута (data
).
ReplaceText Configs:
Значение замены:
{"name" : "user1","time" : "${now()}","data" : "${data:replaceAll('\s',''):escapeJson()}"}
Использование escapeJson и replaceAll *Функция 1023 * для замены всех пробелов, новых строк с ''
Стратегия замены как Always Replace
(или)
Другой способ подготовки сообщения json - использование Атрибуты ToJson процессор.если мы используем этот процессор, то нам нужно подготовить атрибуты / значения перед процессором AttributesToJson, используя UpdateAttribute процессор
Flow :
1.SplitXml
2.ExtractText //add data property to extract content to flowfile attribute
3.UpdateAttribute //add name property -> user1
add time property -> ${now()}
add data property -> ${data:replaceAll('\s',''):escapeJson()}}
4.AttributeToJson //Attributes List -> name,time,data
Destination -> flowfile content
include core attributes -> false