Весенний ботинок Сериализация JSON - PullRequest
0 голосов
/ 25 марта 2020

У меня 3 одинаковые модели с разными именами полей. Я пытаюсь уменьшить код все работает нормально

{
  "bikeResults":{
    "results": {
      etc
    }
  }
}

{
  "carResults":{
    "results": {
      etc
    }
  }
}

{
  "planeResults":{
    "results": {
      etc
    }
  }
}

Все то же самое, но основная оболочка отличается, поэтому мне нужно иметь 3 одинаковые модели. Как их избежать и сделать код более понятным.

Я пытался @JsonAnyGetter, это работает, но у меня есть json

{
  "bikeResults":{
      etc
  }
}

Итак, я потерял путь "результатов".

Ответы [ 2 ]

1 голос
/ 25 марта 2020

Если вы используете библиотеку jackson, вы можете попробовать использовать @JsonProperty и @JsonAlias для этого.

public class VehicleResult {
    private Result results;
}

public class Vehicle {
    @JsonProperty("bikeResults")
    @JsonAlias("carResults")
    @JsonAlias("planeResults")
    private VehicleResult result;
}

Читать это Отображение нескольких JSON полей в одно Java Поле

0 голосов
/ 26 марта 2020

Решена проблема с

@JsonTypeName("results")
@JsonTypeInfo(include= JsonTypeInfo.As.WRAPPER_OBJECT,use= JsonTypeInfo.Id.NAME)

в моем классе результатов

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