如何为以下json创建POJO?

时间:2019-05-17 20:34:15

标签: java json jackson objectmapper

我想使用杰克逊将以下json映射到pojo。

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

是否有一种方法可以创建单个POJO,而不必为每种颜色创建POJO,因为每种颜色都包含相同的参数(colorCode)?

注意:我尝试使用@jsonAlias,但由于它会覆盖该参数,因此无法正常工作。

2 个答案:

答案 0 :(得分:4)

最简单的解决方案是使用Map (如果您有固定的颜色列表,也可以使用Enum)

public class Color{
  private String colorCode;

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

  //constructor, getter, setter
}

答案 1 :(得分:0)

颜色的名称就是名称。除非蓝色的行为不同于红色,否则它们不应是单独的类。

    SELECT friends.friend_id, myfriends.friend_id2, friends.profile_name
    FROM friends 
    INNER JOIN myfriends 
    ON friends.friend_id = myfriends.friend_id1
    WHERE friends.friend_id = '2'

字母设置器等