Конвертируйте строки JSON в массив JSON, используя Apache Nifi
У меня есть файл, который содержит (без схемы) закодированные данные JSON Lines.
Например:
{"foo" : "abc", "bar" : "def" }
{"foo" : "xyz" }
{"foo" : "ghi", "bar" : "jkl", "name" : "The Dude"}
Я хотел бы использовать NIFI для преобразования этого в массив JSON:
[{"foo" : "abc", "bar" : "def" },{"foo" : "xyz" },{"foo" : "ghi", "bar" : "jkl", "name" : "The Dude"}]
1 ответ
Решение
Самый простой способ сделать это в Apache NiFi - это использовать два ReplaceText
процессоры. Во первых настройте как:
- Поиск значения:
\}\s*\{
- Восстановительная стоимость:
\},\{
- Стратегия замены:
Regex Replace
- Режим оценки:
Entire Text
Это удалит разрывы строк между кортежами и вставит запятые между ними. Во-вторых:
- Поиск значения:
(^.*$)
- Восстановительная стоимость:
[$1]
- Стратегия замены:
Regex Replace
- Режим оценки:
Entire Text
Это добавит заключающие скобки вокруг массива JSON. Есть и другие способы сделать это ExecuteScript
или же JoltTransformJSON
процессоры, но они более сложные и ломкие.