У меня есть следующий вход json:
{
"incoming": {
"data": {
"attributes": {
"displayName": "TestDisplayName1",
"authors": "TestAuthors1",
"summary": "TestSummary1"
}
}
},
"overriddenValues": {
"data": {
"attributes": {
"displayName": "TestDisplayName2",
"authors": "TestAuthors2",
"summary": "TestSummary3"
}
}
}
}
, и я ожидаю следующий вывод:
{
"data" : {
"attributes" : {
"displayName" : "TestDisplayName2",
"authors" : "TestAuthors1",
"summary" : "TestSummary1"
}
}
}
со следующей спецификацией Jolt (преобразование идентичности):
[
{
"operation": "shift",
"spec": {
"incoming": {
"@": ""
},
"overriddenValues": {
"data": {
"attributes": {
"displayName": "data.attributes.displayName"
}
}
}
}
}
]
Я получаю следующий вывод:
{
"data" : {
"attributes" : {
"displayName" : [ "TestDisplayName1", "TestDisplayName2" ],
"authors" : "TestAuthors1",
"summary" : "TestSummary1"
}
}
}
Любая идея, почему вывод для displayName имеет массив значений, когда он должен был быть одним значением.
Пробовал следующий обходной путь:
[
{
"operation": "shift",
"spec": {
"incoming": {
"@": ""
},
"overriddenValues": {
"data": {
"attributes": {
"displayName": "data.attributes.displayName"
}
}
}
}
},
{
"operation": "shift",
"spec": {
"*": "&",
"data": {
"attributes": {
"*": "data.attributes.&",
"displayName": {
"1": "data.attributes.displayName"
}
}
}
}
}
]
, но он имеет очевидный недостаток, если поле displayName отсутствует в входящих.data.attributes, displayName будет отсутствовать в выводе.
Любой вывод будет полезен. Спасибо.