jackson

Better solution for lower-casing Java Enum constants in Jackson


I'm looking for a better (more terse) solution for having capitalized Java enum constants serialized/deserialized as lower-case in Jackson than this boilerplate code:


    public enum GitLabPipelineStatusEnum {
        
        @JsonProperty("canceled")
        CANCELED,
        
        @JsonProperty("created")
        CREATED,
        
        @JsonProperty("failed")
        FAILED,
        
        @JsonProperty("manual")
        MANUAL,

Solution

  • public enum GitLabPipelineStatusEnum {
       
        CANCELED,
        CREATED,
        FAILED,
        MANUAL,
    
        @JsonValue
        public String toLowerCase() {
            return name().toLowerCase();
        }
    }
    

    Reference

    https://www.baeldung.com/jackson-serialize-enums