#arrays #json #transform #apache-nifi #jolt
#массивы #json #преобразовать #apache-nifi #jolt
Вопрос:
Я борюсь с некоторым преобразованием jolt. Мне нужно извлечь информацию из массива, но также нужна некоторая информация верхнего уровня. У меня есть счета, и некоторые счета имеют несколько вложений. Я хочу сохранить эти вложения в Postgress db и для каждого вложения указать идентификатор счета…
Мой ввод
[
{
"bill_id": 1,
"entities": [
{
"type": "alpha",
"data": "foo"
},
{
"type": "beta",
"data": "bar"
}
]
},
{
"bill_id": 2,
"entities": []
}
]
Мой желаемый результат
[
{
"bill_id": 1,
"type": "alpha",
"data": "foo"
},
{
"bill_id": 1,
"type": "beta",
"data": "bar"
}
]
Я был бы очень рад, если бы кто-нибудь мог мне помочь
Ответ №1:
Что ж, я нашел ответ, который идеально соответствует моим потребностям. Немного сложно, но он отлично работает в две смены:
[
{
"operation": "shift",
"spec": {
"*": {
"entities": {
"*": {
"@(2,bill_id)": "[amp;3].[amp;1].bill_id",
"type": "[amp;3].[amp;1].type",
"data": "[amp;3].[amp;1].data"
}
}
}
}
},
{
"operation": "shift",
"spec": {
"*": {
"*": "[]"
}
}
}
]