Nifi - 如何将XML整个内容插入JSON属性

jma*_*o10 2 apache-nifi

我试图将一行XML文件的整个内容插入到JSON属性中(我是新手).

我这样做(告诉我是否有更简单的方法,现在好):

在此输入图像描述

我已经通过这种方式配置了Extract文本:

在此输入图像描述

为了完成,我配置替换文本,给出一个JSON格式:

在此输入图像描述

但是他的结果似乎是错误的(不像普通的JSON文件那样工作,例如,如果我尝试做一个httpPost):

在此输入图像描述

我该如何解决这个问题?

干杯

Shu*_*Shu 6

如果您关心new lines并在提取的属性()上json key/values使用NiFi表达式语言函数data.

ReplaceText配置:

在此输入图像描述 替换值:

{"name" : "user1","time" : "${now()}","data" : "${data:replaceAll('\s',''):escapeJson()}"}
Run Code Online (Sandbox Code Playgroud)

使用escapeJsonreplaceAll函数将替换'' 策略替换为所有空格和换行符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
Run Code Online (Sandbox Code Playgroud)