Как создать POJO для следующего json? - PullRequest
0 голосов
/ 17 мая 2019

Я хочу отобразить следующий json в pojo, используя Джексона.

{
  "colors": {
    "red": {
      "colorCode": "#FF0000"
    },
    "green": {
      "colorCode": "#00FF00"
    },
    "blue": {
      "colorCode": "#0000FF"
    }
  }
}

Есть ли какой-либо возможный способ создания одного POJO без необходимости создавать POJO для каждого цвета, поскольку каждый цвет содержит один и тот же параметр (colorCode)?

Примечание. Я попытался использовать @jsonAlias, но он не работает, поскольку он перезаписывает этот параметр.

Ответы [ 2 ]

4 голосов
/ 17 мая 2019

Самое простое решение - использовать карту (или, возможно, Enum, если у вас фиксированный список цветов)

public class Color{
  private String colorCode;

  //constructor, getter, setter
} 
public class Pojo{
   private Map<String,Color> colors;

  //constructor, getter, setter
}
0 голосов
/ 18 мая 2019

Название цвета - это просто имя. Если синий не ведет себя иначе, чем красный, то они не должны быть отдельными классами.

Public class Color{
Private string colorCode;
Private string title

Color(string colorCode, string title){
This.colorCode =colorCode;
This.title = title;
}

Установщики геттеров и т. Д.

...