#json #apache-nifi #jolt
#json #apache-nifi #jolt
Вопрос:
У меня есть сценарий, очень похожий на то, что описано здесь: мне нужно сгладить json с несколькими вложенными массивами в Nifi, сохраняя при этом все атрибуты корневого уровня.
Следующая спецификация работает нормально, но мне было интересно, есть ли способ избежать необходимости записывать каждый атрибут корневого уровня? Файлы json, которые мне нужно преобразовать, имеют много атрибутов корневого уровня, а также много вложенных массивов, так что это не очень удобно. Кроме того, схема json может меняться со временем или от файла к файлу, поэтому необходимость записывать каждый атрибут делает ее более подверженной человеческим ошибкам.
Рабочая спецификация выглядит следующим образом :
[
{
"operation": "shift",
"spec": {
"*": {
"nested_1": {
"*": {
"@(2,root_attribute)": "[amp;3].[amp;1].root_attribute",
"*": "[amp;3].[amp;1].amp;2\.amp;"
}
},
"nested_2": {
"*": {
"@(2,root_attribute)": "[amp;3].[amp;1].root_attribute",
"*": "[amp;3].[amp;1].amp;2\.amp;"
}
}
}
]
Мой вопрос в том, есть ли более эффективный способ, чем запись "@(2,root_attribute)": "[amp;3].[amp;1].root_attribute"
для каждого атрибута корневого уровня, для каждого вложенного массива?
Я пытался поиграть с подстановочными знаками amp;
и @
, но безрезультатно.