springboot学习(二十六) springboot中自定义枚举类型的序列化和反序列化
1、使用@JsonCreator 反序列化定义一个通过某个字段生成枚举的函数,并添加@JsonCreator注解。这样在前端传入int类型会转为枚举类型。@JsonCreatorpublic static SexEnum getByCode(int code) {for (SexEnum value : SexEnum.values()) {...
·
1、使用@JsonCreator 反序列化
定义一个通过某个字段生成枚举的函数,并添加@JsonCreator注解。这样在前端传入int类型会转为枚举类型。
@JsonCreator
public static SexEnum getByCode(int code) {
for (SexEnum value : SexEnum.values()) {
if (Objects.equals(code, value.getCode())) {
return value;
}
}
return null;
}
2、使用@JsonValue序列化
在枚举内某个字段的getter方法上添加@JsonValue注解。这样在返回前端数据时,会将枚举类型转为int类型的code的值。
@JsonValue
public int getCode() {
return this.code;
}
3、完整的枚举类
package com.iscas.biz.mp.test.model.enums;
import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;
import com.fasterxml.jackson.annotation.JsonView;
import com.iscas.biz.mp.test.model.TestEntity;
import lombok.Getter;
import java.util.Objects;
/**
* //TODO
*
* @author zhuquanwen
* @vesion 1.0
* @date 2020/4/5 15:23
* @since jdk1.8
*/
public enum SexEnum /*implements IEnum<Integer>*/ {
/**
* 男
* */
MAN(1, "男"),
/**
* 女
* */
WOMEN(2, "女");
@EnumValue
private final int code;
@JsonValue
public int getCode() {
return this.code;
}
public String getDescription() {
return description;
}
private final String description;
SexEnum(int val, String description) {
this.code = val;
this.description = description;
}
@JsonCreator
public static SexEnum getByCode(int code) {
for (SexEnum value : SexEnum.values()) {
if (Objects.equals(code, value.getCode())) {
return value;
}
}
return null;
}
/*
@Override
public Integer getValue() {
return code;
}*/
}
package com.iscas.biz.mp.test.model;
import com.iscas.biz.mp.test.model.enums.SexEnum;
import lombok.Data;
/**
* //TODO
*
* @author zhuquanwen
* @vesion 1.0
* @date 2020/4/5 15:22
* @since jdk1.8
*/
@Data
public class TestEntity {
private String name;
private SexEnum sex;
}
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)