Проблема процессора ConvertRecord с XML в JSON преобразованием Apache Nifi - PullRequest
0 голосов
/ 10 марта 2020

У меня есть требование, когда я преобразую данные из API в формат JSON. Выходные данные API изначально находятся в XML, поэтому я использую службу контроллера XMLReader для чтения данных XML и службу контроллера JSONRecordSetWriter для преобразования их в формат JSON в Apache Nifi 1.9.2.

Когда я использую процессор ConvertRecord с теми же службами контроллера, мой вывод просто показывает схему avro, а не ожидаемые данные. Я опробовал много вариантов, таких как использование службы контроллера AvroSchemaRegistry, но видна только схема и передаются нулевые значения. Кто-нибудь может объяснить это поведение?

XML выходной файл потока:

<field1 value="AAAA"/>
   <field2 value="BBBB"/>
   <field3 value="male"/>

JSON выход:

[ {
  "field1" : null,
  "field2" : null,
  "field3" : null
} ]

1 Ответ

0 голосов
/ 11 марта 2020

В документации указано, что «Ожидаются записи на втором уровне данных XML, встроенных в тег root». Ваш входной файл выглядит как список XML тегов без тега root, в который они заключены.

Вы можете использовать ReplaceText, чтобы обернуть XML в тег root, тогда XMLReader должен проанализировать поля, как и ожидалось.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...