Как использовать разные имена для сериализации и десериализации при использовании записей?
Джава
public record testRecrd(@JsonProperty("foo bar") String fooBar){}
JSON
{
foo bar : "test"
}
Могу ли я изменить эту запись или есть ли какой-либо модификатор, который я могу использовать, чтобы при десериализации записи я получал
{
fooBar : "test"
}




Вам нужно использовать @JsonAlias для десериализации:
Аннотация, которую можно использовать для определения одного или нескольких альтернативных имен свойства, принимаемых во время десериализации в качестве альтернативы официальному имени.
public record TestRecord(@JsonProperty("foo bar") @JsonAlias("fooBar") String fooBar) {
}
Джексон сначала будет искать foo bar и только если он отсутствует fooBar.
Исправлено использование @JsonAlias , как предложено в принятом ответе.
public record testRecrd(@JsonAlias("foo bar") String fooBar){}
Json возвращает:
{
fooBar : "test"
}
Кстати, согласно соглашению Java, имя класса должно начинаться с заглавной буквы.