JOLT transform добавить префикс для спецификации распределения массива объектов
Прошу помощи: Есть документ вида
{
"_id": 100,
"CreatedDate": "2021-00-00 00:00:32+0300",
"UpdatedDate": "2022-00-01 00:00:48+0300",
"RequestedDocumentsList": [
{
"DocumentType": 11,
"FileType": 11,
"ReferenceId": "ref1",
"FileComment": null,
"IsAttached": false
},
{
"DocumentType": 12,
"FileType": 12,
"ReferenceId": "ref2",
"FileComment": null,
"IsAttached": false
}
]
}
для этого документа подготовлена спецификация
[
{
"operation": "shift",
"spec": {
"Documents": {
"*": {
"@": "[&1]",
"@(2,_id)": "[&1]._id"
}
}
}
}
]
Нужно получить вывод вида:
[ {
"DC_DocumentType" : 11,
"DC_FileType" : 11,
"DC_ReferenceId" : "ref1",
"DC_FileComment" : null,
"DC_IsAttached" : false,
"_id" : 100
}, {
"DC_DocumentType" : 12,
"DC_FileType" : 12,
"DC_ReferenceId" : "ref2",
"DC_FileComment" : null,
"DC_IsAttached" : false,
"_id" : 100
} ]
т.е. добавить префикс DC_ для всех атрибутов кроме _id в одной спецификации. Есть понимание как прогнать это через еще одну трансформацию для получения нужного результата, но можно ли сделать в одной?
Пробовал указывать префиксы в данных строках, но так и не победил(
"@": "[&1]",
"@(2,_id)": "[&1]._id"
Ответы (1 шт):
Автор решения: Александр
→ Ссылка
так попробуйте
[{
"operation": "shift",
"spec": {
"RequestedDocumentsList": {
"*": {
"*": "[&1].DC_&",
"@(2,_id)": "[&1]._id"
}
}
}
}
]
тут прям "кладезь": https://jolt-demo.appspot.com/#inception