java中的Enum在@RestController(@ResponseBody) 注解下返回的表现
枚举
public enum CouponType {
PLATFORM("平台优惠券"), NEWCOMER("新人专享优惠券"), INVITE("邀请奖励优惠券"), DESIGNATED_USER("特定用户优惠券");
private final String info;
CouponType(String info) {
this.info = info;
}
public String getInfo() {
return info;
}
@Override
public String toString() {
return this.info;
}
}
直接返回JSON
couponsType:"PLATFORM"
加注解返回键值对
- 枚举类上加 @JsonFormat(shape = JsonFormat.Shape.OBJECT)
couponsType: {info: "平台优惠券"}
自定义序列化
public class CouponTypeSerializer extends StdSerializer {
public CouponTypeSerializer() {
super(CouponType.class);
}
public CouponTypeSerializer(Class t) {
super(t);
}
@Override
public void serialize(Object couponOperation, JsonGenerator generator, SerializerProvider serializerProvider) throws IOException {
CouponType c = (CouponType) couponOperation;
generator.writeStartObject();
generator.writeFieldName("name");
generator.writeString(c.name());
generator.writeFieldName("info");
generator.writeString(c.getInfo());
generator.writeEndObject();
}
}
- 枚举类上加 @JsonSerialize(using = CouponTypeSerializer.class)
couponsType: {name: "PLATFORM", info: "平台优惠券"}
如果页面需要返回name,在定义的时候添加name字段最方便,配合@JsonFormat(shape = JsonFormat.Shape.OBJECT)
比如:
PLATFORM("平台优惠券","PLATFORM") ...
private final String info;
private final String name;
CouponType(String info,String name) {
this.info = info;
this.name=name;
}
enum 持久化
enum 类型默认是是存储ORDINAL (enum的顺序:0,1,2)
为了代码健壮,建议保存String(enum的name属性)
/**
* 优惠券类型
*/
@Enumerated(EnumType.STRING)
private CouponType couponsType;
java中的Enum在@RestController(@ResponseBody) 注解下返回的表现的更多相关文章
- 深入掌握Java中的enum
对于要在程序中要表示有限种类的某事物,一般我们可以采用两种方式,一是使用:public static final String 常量:二是使用enum来表示.一般而言前者简单,但是不能够很好的提供更多 ...
- Java中删除文件、删除目录及目录下所有文件(转)
原文链接:Java中删除文件.删除目录及目录下所有文件 知识点:File.delete()用于删除“某个文件或者空目录”!所以要删除某个目录及其中的所有文件和子目录,要进行递归删除,具体代码示例如下: ...
- java中把文件拷贝到指定目录下最简单几种方法
java中把文件拷贝到指定目录下最简单几种方法 String savePath = "D:/file";// 文件保存到d盘的file目录下 File savefile = n ...
- 关于Java中枚举Enum的深入剖析
在编程语言中我们,都会接触到枚举类型,通常我们进行有穷的列举来实现一些限定.Java也不例外.Java中的枚举类型为Enum,本文将对枚举进行一些比较深入的剖析. 什么是Enum Enum是自Java ...
- Java中的Enum的使用与分析
使用name()方法和valueOf(String)方法可以在枚举类型对象和字符串之间方便得转换.如果valueOf(String)方法的参数不是该枚举类型合法的字符串,则会抛出IllegalArgu ...
- 如何使用Java中的Enum类
Java1.5 中出现了枚举类型.当一个值都在一个固定的范围内变化,那就可以使用 enum 类型来定义.比如说,一周有七天,一年有四季. 没有枚举类的时候,我们用常量来定义一组范围值的: public ...
- C++和Java中枚举enum的用法
在C++和java中都有枚举enum这个关键字,但是它们之间又不太一样.对于C++来说,枚举是一系列命名了的整型常量,而且从枚举值转化为对应的整型值是在内部进行的.而对于Java来说,枚举更像一个类的 ...
- Java中的泛型、枚举和注解
1.泛型: 一.为什么要有泛型(Generic)?1.解决元素存储的安全性问题任何类型都可以添加到集合中:类型不安全2.解决获取数据元素时,需要类型强转的问题读取出来的对象需要强转:繁琐可能有Clas ...
- Java中的Enum枚举类型总结
废话不多说,直接上代码,该例子来源于:http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html public enum Planet { ...
随机推荐
- js携带参数跳转controller返回页面
upauth:function(){ var record = myForm.getRecord(); var companywyId = record.get("companyId&quo ...
- Android OkHttp3简介和使用详解
一 OKHttp简介 OKHttp是一个处理网络请求的开源项目,Android 当前最火热网络框架,由移动支付Square公司贡献,用于替代HttpUrlConnection和Apache HttpC ...
- 如何实现一个串行promise
异步执行任务A.B.C,...... 1.使用数组的reduce方法,reduce里有四个参数,pre,next,index,arr, 2.如果then方法里返回的是一个promise对象,那么执行下 ...
- GitHub-Microsoft:DotNet2
ylbtech-GitHub-Microsoft:DotNet2 1.返回顶部 · SignService Code Signing service and Client for Authentico ...
- regsvr32 错误解决方案
regsvr32对dll进行注册时报错,0x80070005表示权限不够,虽然是以管理员身份登录,但是仍然需要如下操作: 在运行命令提示符的时候,请右击 命令提示符 选 以管理身份运行.
- selenium元素定位方式xpath总结
一.绝对路径(不要使用,除非已经使用了所有方式仍然无法定位)方法:根据实际目录,逐层输写.例子: find_element_by_xpath("/html/body/div[2]/form/ ...
- 2019.11.29 SAP SMTP郵件服務器配置 發送端 QQ郵箱
今天群裏的小夥伴問了如何配置郵件的問題,隨自己在sap裏面配置了一個 1. RZ10配置參數 a) 参数配置前,先导入激活版本 执行完毕后返回 b) 输入参数文件DEFAU ...
- [笔记] Ubuntu机器添加新硬盘安装流程
SSD虽然快,但是容量不够用,买了块希捷4TB的机械硬盘,准备给台机扩容. 安装环境 OS: Ubuntu 18.04 安装新硬盘 问了客服,原来这款机箱已经带了硬盘滑槽,不需要固定螺钉了. 买了SA ...
- 【SVN】导出项目后报错汇总
原文链接 1.jsp页面内:标点符号,引入报错 解决方法:关闭此项目的jsp验证,右键,最下面一个,Verification,右边一溜只留一个dtd就好 2. 编码问题-乱码 刚拉下来的项目编码可能与 ...
- .NET制作滚动条
今天,在工作的时候,刚好做到了滚动条,对这点不是很懂,所以,研究了一下,记录在这里,与大家分享. 对于前台页面,我们就只需要设置数据表的样式:style="overflow: auto; 即 ...