我正在尝试将XML文件行的全部内容插入JSON属性(我是新手)。
我正在这样做(告诉我是否有更简单的方法,到现在为止还不错):
我已经配置了以这种方式提取文本:
最后,我配置替换文本,并给出JSON格式:
但是他的结果似乎是错误的(不能像普通的JSON文件那样工作,例如,如果我尝试执行httpPost的话):
如何解决此问题?
欢呼
答案 0 :(得分:6)
如果您担心new lines
和json key/values
,请在提取的属性(data
)上使用NiFi expression language函数。
替换文本配置:
{"name" : "user1","time" : "${now()}","data" : "${data:replaceAll('\s',''):escapeJson()}"}
使用 escapeJson 和 replaceAll 函数替换所有空格,换行符为''
替换策略为Always Replace
(或)
准备json消息的另一种方法是使用 AttributesToJson 处理器。 如果我们使用的是此处理器,则需要使用 UpdateAttribute 处理器
在AttributesToJson处理器之前准备属性/值流量:
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