#1.首先是问题的出现场景,由于我进行获取枚举对象,返回前端内容时遇到对象值没有
进行获取对象
前端获取的值在这里插入图片描述
但是枚举对象中是有值的在这里插入图片描述

@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum MemberLevelEnum {

VIP_NORMAL(1,"vip_normal",1,new BigDecimal("59.9"),new BigDecimal("29.9"),new BigDecimal("29.9"),"单月购买"),
VIP_NORMAL_CONTINUE(2,"vip_normal_continue",1,new BigDecimal("59.9"),new BigDecimal("29.9"),new BigDecimal("12"),"连续包月"),
;

/**
 * 会员等级
 */
private Integer memberLevel;

/**
 * 会员等级code
 */
private String memberLevelCode;

/**
 * 会员有效期,单位为月
 */
private Integer month;

/**
 * 原价
 */
private BigDecimal oldPrice;
/**
 * 现价
 */
private BigDecimal nowPrice;
/**
 * 自动续费价格
 */
private BigDecimal continuePrice;
/**
 * 描述
 */
private String desc;

private MemberLevelEnum(Integer memberLevel, String memberLevelCode, Integer month, BigDecimal oldPrice,
		BigDecimal nowPrice, BigDecimal continuePrice, String desc) {
	this.memberLevel = memberLevel;
	this.memberLevelCode = memberLevelCode;
	this.month = month;
	this.oldPrice = oldPrice;
	this.nowPrice = nowPrice;
	this.continuePrice = continuePrice;
	this.desc = desc;
}

public Integer getMemberLevel() {
	return memberLevel;
}

public void setMemberLevel(Integer memberLevel) {
	this.memberLevel = memberLevel;
}

public String getMemberLevelCode() {
	return memberLevelCode;
}

public void setMemberLevelCode(String memberLevelCode) {
	this.memberLevelCode = memberLevelCode;
}

public Integer getMonth() {
	return month;
}

public void setMonth(Integer month) {
	this.month = month;
}

public BigDecimal getOldPrice() {
	return oldPrice;
}

public void setOldPrice(BigDecimal oldPrice) {
	this.oldPrice = oldPrice;
}

public BigDecimal getNowPrice() {
	return nowPrice;
}

public void setNowPrice(BigDecimal nowPrice) {
	this.nowPrice = nowPrice;
}

public BigDecimal getContinuePrice() {
	return continuePrice;
}

public void setContinuePrice(BigDecimal continuePrice) {
	this.continuePrice = continuePrice;
}

public String getDesc() {
	return desc;
}

public void setDesc(String desc) {
	this.desc = desc;
}

public static MemberLevelEnum getByCode(String memberLevelCode) {
    return Arrays.stream(MemberLevelEnum.values()).filter(item -> StringUtils.equals(memberLevelCode, item.memberLevelCode)).findFirst().orElse(null);
}

}

#2.原因是没有进行格式化导致返回前端枚举对象没有值,直接进行获取到的值进行格式化,依然不起作用。
#3解决问题
在网上查找资料,通过在枚举类加上注解@JsonFormat(shape = JsonFormat.Shape.OBJECT)

解决了枚举类返回给前端格式化的问题在这里插入图片描述
Shape.OBJECT 表示序列化的一种格式或者类型,可以有多种类型。
底层源码上说明会有多种序列化类型,根据自己需要选择一种即可!在这里插入图片描述
最后再去通过枚举类去获取自定义对象前端就会有值了,问题就解决了。在这里插入图片描述
在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐