我如何通过 NiFi 将 json 转换为 soap xml 格式
How can i convert json to soap xml format by NiFi
我正在尝试使用 json 输入来使用 soap ws。我一直在将 json 转换为 xml。如何使用 NiFi 创建从 json 转换为 soap xml 格式的流程。
没有直接将JSON转换为XML的处理器。一种选择是将 ExecuteScript 与执行转换的 Groovy 脚本一起使用。看起来有一些使用 Groovy:
将 JSON 转换为 XML 的示例
我有一个类似的场景,其中 Oracle 注册器需要一个接一个地输入 XML POST HTTP。
为了解决这个问题,我创建了后续流程,我在设置的位置添加了一些细节 (parameters/configurations):
1) 执行SQL记录, 详情:
- SQL select query: select id, ip from server_table
- 记录器:JsonRecordSetWriter
- 每个流文件的最大行数:1
2) EvaluateJsonPath, 详情:
- 目的地:流文件属性
- 附加属性 1:local.id
- 附加值 1:$.[0].id
- 附加属性 2:local.ip
- 附加值2:$.[0].ip
3) ReplaceText, 详情:
- 搜索值:(?s)(^.*$)
- 重置价值(XML):
<item>
<id>${local.id}</id>
<ip>${local.ip}</ip>
</item>
- 替换策略:始终替换
4) 调用 HTTP, 详情:
- 运行 时间表:2 秒
- HTTP 方法:POST 远程 URL:
- https://restapi.xxx.com/apiREST/v2/items
您可以将流文件中的 JSON 内容通过管道传输到 ConvertRecord
处理器。这个处理器接收一个 reader 和一个 writer。然后你可以配置一个 JSON 树 Reader 来解析你的 JSON 内容,而作者需要是一个 XMLRecordSetWriter
。确保在编写器的配置中指定元素名称。现在,这是一个 vanilla writer,它只是创建一个 XML 相当于你的 JSON.
输入:
{
"firstname": "John",
"lastname": "Doe",
"age": "45",
}
输出:
<person>
<firstname>John</firstname>
<lastname>Doe</lastname>
<age>45</age>
</person>
现在一旦有了 XML,就可以通过 TransformerXML
处理器对其进行管道传输。您应该能够将处理器设置为使用 XSLT 根据您的规范创建 SOAP XML 负载。
我正在尝试使用 json 输入来使用 soap ws。我一直在将 json 转换为 xml。如何使用 NiFi 创建从 json 转换为 soap xml 格式的流程。
没有直接将JSON转换为XML的处理器。一种选择是将 ExecuteScript 与执行转换的 Groovy 脚本一起使用。看起来有一些使用 Groovy:
将 JSON 转换为 XML 的示例我有一个类似的场景,其中 Oracle 注册器需要一个接一个地输入 XML POST HTTP。
为了解决这个问题,我创建了后续流程,我在设置的位置添加了一些细节 (parameters/configurations):
1) 执行SQL记录, 详情:
- SQL select query: select id, ip from server_table
- 记录器:JsonRecordSetWriter
- 每个流文件的最大行数:1
2) EvaluateJsonPath, 详情:
- 目的地:流文件属性
- 附加属性 1:local.id
- 附加值 1:$.[0].id
- 附加属性 2:local.ip
- 附加值2:$.[0].ip
3) ReplaceText, 详情:
- 搜索值:(?s)(^.*$)
- 重置价值(XML):
<item>
<id>${local.id}</id>
<ip>${local.ip}</ip>
</item>
- 替换策略:始终替换
4) 调用 HTTP, 详情:
- 运行 时间表:2 秒
- HTTP 方法:POST 远程 URL:
- https://restapi.xxx.com/apiREST/v2/items
您可以将流文件中的 JSON 内容通过管道传输到 ConvertRecord
处理器。这个处理器接收一个 reader 和一个 writer。然后你可以配置一个 JSON 树 Reader 来解析你的 JSON 内容,而作者需要是一个 XMLRecordSetWriter
。确保在编写器的配置中指定元素名称。现在,这是一个 vanilla writer,它只是创建一个 XML 相当于你的 JSON.
输入:
{
"firstname": "John",
"lastname": "Doe",
"age": "45",
}
输出:
<person>
<firstname>John</firstname>
<lastname>Doe</lastname>
<age>45</age>
</person>
现在一旦有了 XML,就可以通过 TransformerXML
处理器对其进行管道传输。您应该能够将处理器设置为使用 XSLT 根据您的规范创建 SOAP XML 负载。