首页 > 解决方案 > 如何为以下 json 创建 POJO?

问题描述

我想使用jackson将以下json映射到pojo。

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

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

注意:我尝试使用 @jsonAlias 但它不会工作,因为它会覆盖该参数。

标签: javajsonjacksonobjectmapper

解决方案


最简单的解决方案是使用 Map < String, Color > (或者如果您有固定的颜色列表,则可能是 Enum)

public class Color{
  private String colorCode;

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

  //constructor, getter, setter
}

推荐阅读