Код: Выделить всё
{
"id": "44f79d20f28a2ea505b1",
"type": "ONE",
"cardIssued": "AA",
"token": {
"token1": "dummy",
"tokenInfo": {
"aaa": "007"
},
"payment": {
"name": "test",
"paymentType": {
"card": "ONE"
},
"paymentAcc": "123"
},
"isDelegated": false,
"attemptId": "981631"
}
Код: Выделить всё
private static HashMap getReplace(Map message) {
HashMap message = new HashMap(message);
for (String mapKey : PARAMETERS_FOR_REPLACE) {
message.computeIfPresent(mapKey,
(key, value) -> REGEX_ANY_CHAR.matcher(String.valueOf(value)).replaceAll("$^%%$"));
}
return message;
}
cardIssued (из карты)
token1 (из внутренней карты токена)
aaa из внутренней карты токена -> tokeninfo
значение может быть любым внутренняя карта, а не только токен и информация о токене
Есть ли способ передать все значения в потоковом режиме, чтобы проверить, является ли это картой, а затем вызвать метод и заменить его?
Окончательный результат должен быть:
Код: Выделить всё
{
"id": "44f79d20f28a2ea505b1",
"type": "ONE",
"cardIssued": "$^%%$",
"token": {
"token1": "$^%%$",
"tokenInfo": {
"aaa": "$^%%$"
},
"payment": {
"name": "test",
"paymentType": {
"card": "ONE"
},
"paymentAcc": "123"
},
"isDelegated": false,
"attemptId": "981631"
}
Код: Выделить всё
Map newMessage = getReplace(messageMap.entrySet().stream()
.collect(Collectors.toMap(Map.Entry::getKey, entry -> (Object) entry.getValue())));
Есть ли способ использовать поток и сделать это на всех внутренних и внутренних «внутренних» картах?
Подробнее здесь: https://stackoverflow.com/questions/786 ... ith-stream