【问题标题】:NiFi XML to JSONNiFi XML 到 JSON
【发布时间】:2019-02-23 02:27:40
【问题描述】:

我有一个 NiFi 流,其中包括将 XML 转换为 JSON。这样做是为了准备要插入 MongoDB 的数据。我正在使用 TransformXML 处理器和 XSL 进行转换。这是正确的方法吗?通常,我会说 XSLT 不是将 XML 转换为 JSON 的最佳方式,但它无法在 NiFi 中找到另一种方式。

【问题讨论】:

    标签: apache-nifi


    【解决方案1】:

    如果您的 XML 具有特定结构(非动态),您可以使用ConvertRecord 处理器。

    1. 选择XMLReader 读取XML。为此,您必须定义一个avro schema。
    2. 选择JsonRecordSetWriter 写入转换结果。在这种状态下,如果您不想更改结构,则无需更改 JsonRecordSetWriter 上的任何内容。

    更多信息,我建议你看看下面的链接。

    https://pierrevillard.com/2018/06/28/nifi-1-7-xml-reader-writer-and-forkrecord-processor/

    【讨论】:

      【解决方案2】:

      嗯,使用 Apache NiFi 转换 XML 数据有两种最可取的方法:

      A.将TransformXML 处理器与XSLT 文件一起使用

      有很多示例提供了使用 XSLT 将任何 XML 转换为 JSON 文档的解决方案。它非常易于使用。但根据您的要求,您可能需要特定的功能。

      例如https://community.hortonworks.com/articles/29474/nifi-converting-xml-to-json.html

      https://gist.github.com/speby/9561961e06dc1b38822764b26ddc2159

      https://community.hortonworks.com/questions/91784/could-transformxml-work-with-several-xslts.html

      B. 使用带有 JSONObject 库的 Java 处理器

      使用这种方法,您需要编写自己的自定义处理器。

      注意: org.json 在许可方面不 Apache 友好。

      一个很好的例子是: https://gist.github.com/pvillard31/408c6ba3a9b53880c751a35cffa9ccea

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-12-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多