Jackson针对enum类型的解析

org.codehaus.jackson.annotate.JsonValue,该jar包已经废弃维护,请使用fasterxml的jar包com.fasterxml.jackson.annotation.JsonValue

Jackson针对enum类型的解析_第1张图片
image.png

假设我们现在有如下枚举类:

public enum Sex {
    FEMALE("0", "女"), MALE("1", "男");
    private String value;
    private String description;

    public String getValue() {
        return value;
    }
    public void setValue(String value) {
        this.value = value;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String description) {
        this.description = description;
    }
}

在SpringMVC中如果直接返回枚举类

@RequestMapping("sex")
@ResponseBody
public Sex aboutUs3(){
    return Sex.MALE;
}

他会返回枚举对象的对象名称,比如Sex.MALE,就会返回"MALE",如果想返回枚举对象中的某个属性,则可以使用@JsonValue注解。该注解只能用在方法上,所以我们想返回枚举对象的哪个属性,就在对应属性的getter方法上加上该注解即可。

@JsonValue
public int getValue() {
    return value;
}

此时,该枚举类作为另一个实体类的属性返回,jackson也会自动返回标注了@JsonValue注解的属性值。

你可能感兴趣的:(Jackson针对enum类型的解析)