jackson 枚举 序列化和反序列

  • Post author:
  • Post category:其他


网上这类资料很少,自己总结一下:

    @Data
    @AllArgsConstructor
    public static enum Event {
        FORGOT_PASSWORD("forgot password",200),
        GET_PASSWORD("get password",2001);

        private final String value;
        private final int code;
    }

jackson的枚举序列化

默认序列化为enum的name

Event.GET_PASSWORD序列化为”GET_PASSWORD”

反序列化也一样,只有string为”GET_PASSWORD”才可以反序列化为Event.GET_PASSWORD

自定义序列化字段,通过@JsonValue注解,指定哪个字段用于序列化和反序列化

    @Data
    @AllArgsConstructor
    public static enum Event {
        FORGOT_PASSWORD("forgot password",200),
        GET_PASSWORD("get password",2001);

        private final String value;
        private final int code;
        @JsonValue
        public int toValu1e(){
            return this.code;
        }

    }

这样就可以 通过”200″序列化为Event.GET_PASSWORD



版权声明:本文为qq_35232663原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。