Разные имена свойств JSON при сериализации и десериализации

Возможно ли: иметь одно поле в классе, но разные имена для него при сериализации/десериализации в библиотеке Jackson?

Например, у меня есть класс "Coordiantes".

class Coordinates{
  int red;
}

Для десериализации из JSON хочу иметь такой формат:

{
  "red":12
}

Но когда я буду сериализовать объект, результат должен быть таким:

{
  "r":12
}

Я пытался реализовать это, применив аннотацию @JsonProperty как на getter, так и на setter (с разными значениями):

class Coordiantes{
    int red;

    @JsonProperty("r")
    public byte getRed() {
      return red;
    }

    @JsonProperty("red")
    public void setRed(byte red) {
      this.red = red;
    }
}

но получил исключение:

org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "red"

134
задан Paul Rooney 19 December 2017 в 23:06
поделиться