Десериализация / сериализация Json без изменения именования - PullRequest
0 голосов
/ 23 июня 2018

Мне было интересно, есть ли возможность автоматически десериализовать 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 со значением является двунаправленным, поэтому я получаю те же имена свойств, которые объявлены в аннотации, чего я действительно хотел бы избежать. Есть ли удобный способ справиться с таким сценарием?

1 Ответ

0 голосов
/ 23 июня 2018

Аннотирующие свойства класса данных с @JsonAlias сделали свое дело.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...