Мне было интересно, есть ли возможность автоматически десериализовать json для конкретных свойств объекта и сериализовать его с разными именами без реализации какого-либо пользовательского десериализатора. Я работаю над интеграцией моего приложения с Github API, и я хотел бы изменить их соглашение об именах. После запроса ресурсов я получаю что-то вроде:
{
full_name: "...",
description: null,
clone_url: "...",
stargazers_count: 0,
created_at: "2018-06-05"
}
но я бы хотел выставить их на моей стороне как:
{
fullName: "...",
description: null,
cloneUrl: "...",
stars: 0,
createdAt: "2018-06-05"
}
Вот как сейчас выглядит моя модель:
internal data class GithubRepositoryResponse(@JsonProperty("full_name") val fullName: String,
val description: String?,
@JsonProperty("clone_url") val cloneUrl: URL,
@JsonProperty("stargazers_count") val stars: Int,
@JsonProperty("created_at") val createdAt: LocalDate)
Использование @JsonProperty
со значением является двунаправленным, поэтому я получаю те же имена свойств, которые объявлены в аннотации, чего я действительно хотел бы избежать. Есть ли удобный способ справиться с таким сценарием?