Управляющая последовательность Unicode в потоке NIFI для преобразования JSON в XML - PullRequest
0 голосов
/ 27 мая 2020

Используя последовательность процессоров GenerateTableFetch, ExecuteSQL, SplitAvro и ConvertAvroToJSON, я извлекаю поле JSON из представления MySql, которое имеет следующее содержимое: «Используется 7-балльная шкала (от 1 = \ u201Совершенно нет \ u201D до 7 = \ u201Cextremely \ u201D) ..»

Если я просматриваю содержимое файла в очереди и выбираю опцию formatted (в отличие от original), я получаю следующее: «Используется 7-балльная шкала (от 1 =« совсем нет »до 7 =« чрезвычайно ») ...»

И эта неэкранированная строка - это то, что я хотел бы сохранить в No SQL дб. Использует ли эта встроенная программа просмотра NIFI функцию, к которой я могу подключиться?

Я спрашиваю об этом, потому что позже в потоке я заключаю JSON в тег xml чтобы преобразовать его в XML с помощью таблицы стилей XSLT. Но я получаю символы Unicode после преобразования и хотел бы вернуть исходный неэкранированный JSON (прежде чем я сохраню его в No SQL db).

1 Ответ

1 голос
/ 27 мая 2020

Вы можете использовать процессор ReplaceText для замены всех экземпляров байтовой последовательности (\u201C) в содержимом потокового файла на . Если вам нужно, чтобы начальные и конечные кавычки были разными, вы можете использовать ReplaceTextWithMapping, чтобы связать разные кодовые точки Unicode с указанным значением замены c. Если вы этого не сделаете, вы можете просто использовать generi c ReplaceText, сопоставить \u201[CD] и заменить его на ".

...