NiFi XML в JSON - PullRequest
       27

NiFi XML в JSON

0 голосов
/ 23 февраля 2019

У меня есть поток NiFi, который, помимо прочего, превращает XML в JSON.Это сделано для подготовки данных для вставки в MongoDB.Я использую процессор TransformXML и XSL для преобразования.Это правильный метод?Обычно я бы сказал, что XSLT - не лучший способ преобразовать XML в JSON, но он не смог найти другого пути в NiFi.

Ответы [ 2 ]

0 голосов
/ 24 февраля 2019

Если ваш 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/

0 голосов
/ 23 февраля 2019

Ну, может быть два наиболее предпочтительных подхода для преобразования данных XML с Apache NiFi :

A. Использование процессора TransformXML с файлом XSLT

Существует множество примеров, предлагающих решение для преобразования любого XML в документ JSON с использованием XSLT.И это очень просто в использовании.Но, исходя из ваших требований, вам могут потребоваться специальные функции.

Например: 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. Использование процессора Java с библиотекой JSONObject

Для работы с этим подходом вам необходимо написать собственный настраиваемый процессор.

Примечание: org.json является НЕ Apache дружественным с точки зрения лицензирования.

Очень хорошим примером этого может быть: https://gist.github.com/pvillard31/408c6ba3a9b53880c751a35cffa9ccea

...