Если имя присутствует, оно будет дополнено префиксом и постфиксом '', например '*Hello*'. Однако если имя отсутствует, добавляется только «**». Если имя необязательно, как избежать добавления только «**», когда запрос отсутствует? То же самое касается адресной строки1 и адресной строки2.
Обновления: в приведенном ниже запросе свойства postalCode и Tour не должны улучшаться.
Входной файл.json
{
"search": {
"party": {
"name": "AccountName",
"tour": "TourName"
},
"address": {
"addressLine1": "US",
"postalCode": "psCode"
}
}
}
ВстряскаТрансформация
[
{
"operation": "shift",
"spec": {
"search": {
"party": {
"name": "AccountName",
"tour": "Tour"
},
"address": {
"addressLine1": "add1",
"addressLine2": "add2",
"postalCode": "psCode"
}
}
}
},
{
"operation": "modify-overwrite-beta",
"spec": {
"AccountName": "=concat('*',@(1,AccountName),'*')",
"add1": "=concat('*',@(1,add1),'*')",
"add2": "=concat('*',@(1,add2),'*')"
}
}
]
ActualOutput.json
{
"AccountName" : "*AccountName*",
"Tour" : "TourName",
"add1" : "*US*",
"add2" : "*UK*",
"psCode" : "psCode"
}
ActualdOutput.json: если адресная строка2 отсутствует, добавляется **
{
"AccountName" : "*AccountName*",
"Tour" : "TourName",
"add1" : "*US*",
"psCode" : "psCode",
"add2" : "**"
}
В фактическом выводе я хотел бы исключить «SecondaryRatings»: {} в ответе
@BarbarosÖzhan Я обновил вопрос, в толчке нет раздела по умолчанию. Я обновил вопрос. Я принял предыдущий вопрос, спасибо за помощь.
Кажется, в этом случае вам нужно удалить add2
, а не несуществующий SecondaryRatings
, не так ли?
UK
отсутствует для нового ввода...
Нет необходимости добавлять звездочки по отдельности, сделайте это общим способом, просто заменив текущую спецификацию изменения следующей:
{
"operation": "modify-overwrite-beta",
"spec": {
"*ame|add*": "=concat('*',@(1,&),'*')" // @(1,&) is a replacement for
// the current elements
}
}
при этом нежелательные атрибуты самопроизвольно исчезнут, и будут затронуты только связанные наборы ограниченных атрибутов.
Это решение применимо ко всем свойствам, но внутри стороны и адреса могут быть и другие свойства, на которые это изменение не должно повлиять.
@RakeshGR Затем вам нужно увидеть вашу реальную ситуацию в минимальном и воспроизводимом виде, а также включить все эти случаи, чтобы иметь возможность получить более надежные решения.
Я обновил вопрос с фактическим запросом ввода с необязательными и всеми параметрами.
на данный момент проблем нет, ваш случай обрабатывается тем же решением, за исключением UK
, которого уже нет. @RakeshGR
json { "AccountName" : "*AccountName*", "Tour" : "*TourName*", "add1" : "*US*", "psCode" : "*psCode*" }
Это применимо ко всем полям, но должно применяться только к AccountName, addr1, addr2, остальные свойства должны быть такими, какие есть. @barbarps
Я только что отредактировал @RakeshGR, кстати, их двойные ActualOutput
Спасибо, все работает как ожидалось. Не могли бы вы удалить повторяющиеся двойные кавычки в этой строке? ""ame|add"": "=concat('',@(1,&),'')" работает как положено. Я поделился двумя ActualOutput, потому что витрина, когда значения пусты или равны нулю, просто добавляется «*».
@RakeshGR, ох, извини, только что удалил их. Заботиться
Когда AccountName, add1 добавляются к «**», если в запросе они равны нулю. Ожидается, что эти свойства следует игнорировать. Когда он отсутствует или если значение равно нулю.
{ "search": { "party": { "name": null, "tour": "TourName" }, "address": { "addressLine1": "US", "postalCode": "psCode" } } } When имя равно нулю, оно добавляет AccountName: ** к выводу @Barbaros Ozhan
Не могли бы вы рассказать подробнее, почему вы использовали спецификацию
default
, с каким типом входных данных вы можете столкнуться… и т. д.? Кстати, вас устраивает решение предыдущего вопроса?