Я думаю, что правильный вызов замены будет содержать экранированные двойные кавычки (я использую Java DSL)
.transform(simple("${body.replace('[]', '\"\"')}"))
Но не работает , пустые двойные кавычки не отображаются в результате. Возможно, они «оценены как пустые».
Original body: "firstName" : "aaa" "lastName" : []
Transformed body: "firstName" : "aaa" "lastName" :
Однако вы можете сделать обходной путь , заменив пустые скобки на первом шаге на пустые двойные кавычки «специальным вспомогательным символом» , чтобы просто сделать уверен, что строка замены не может быть интерпретирована как пустая. Я использовал знак плюс (+) в моем примере ниже.
На втором шаге вы можете заменить вспомогательный символ ничем , поэтому пустые двойные кавычки останутся в результате.
.transform(simple("${body.replace('[]', '+\"\"')}"))
.transform(simple("${body.replace('+', '')}"))
Это работает для меня.
Original body: "firstName" : "aaa" "lastName" : []
Transformed body: "firstName" : "aaa" "lastName" : ""
Вам потребуется использовать вспомогательный символ, который не содержится в вашем теле . В противном случае второй шаг, возможно, удалит то, что вы не хотите.