参考文档

枚举

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) 注解下返回的表现的更多相关文章

  1. 深入掌握Java中的enum

    对于要在程序中要表示有限种类的某事物,一般我们可以采用两种方式,一是使用:public static final String 常量:二是使用enum来表示.一般而言前者简单,但是不能够很好的提供更多 ...

  2. Java中删除文件、删除目录及目录下所有文件(转)

    原文链接:Java中删除文件.删除目录及目录下所有文件 知识点:File.delete()用于删除“某个文件或者空目录”!所以要删除某个目录及其中的所有文件和子目录,要进行递归删除,具体代码示例如下: ...

  3. java中把文件拷贝到指定目录下最简单几种方法

    java中把文件拷贝到指定目录下最简单几种方法   String savePath = "D:/file";// 文件保存到d盘的file目录下 File savefile = n ...

  4. 关于Java中枚举Enum的深入剖析

    在编程语言中我们,都会接触到枚举类型,通常我们进行有穷的列举来实现一些限定.Java也不例外.Java中的枚举类型为Enum,本文将对枚举进行一些比较深入的剖析. 什么是Enum Enum是自Java ...

  5. Java中的Enum的使用与分析

    使用name()方法和valueOf(String)方法可以在枚举类型对象和字符串之间方便得转换.如果valueOf(String)方法的参数不是该枚举类型合法的字符串,则会抛出IllegalArgu ...

  6. 如何使用Java中的Enum类

    Java1.5 中出现了枚举类型.当一个值都在一个固定的范围内变化,那就可以使用 enum 类型来定义.比如说,一周有七天,一年有四季. 没有枚举类的时候,我们用常量来定义一组范围值的: public ...

  7. C++和Java中枚举enum的用法

    在C++和java中都有枚举enum这个关键字,但是它们之间又不太一样.对于C++来说,枚举是一系列命名了的整型常量,而且从枚举值转化为对应的整型值是在内部进行的.而对于Java来说,枚举更像一个类的 ...

  8. Java中的泛型、枚举和注解

    1.泛型: 一.为什么要有泛型(Generic)?1.解决元素存储的安全性问题任何类型都可以添加到集合中:类型不安全2.解决获取数据元素时,需要类型强转的问题读取出来的对象需要强转:繁琐可能有Clas ...

  9. Java中的Enum枚举类型总结

    废话不多说,直接上代码,该例子来源于:http://docs.oracle.com/javase/tutorial/java/javaOO/enum.html public enum Planet { ...

随机推荐

  1. js携带参数跳转controller返回页面

    upauth:function(){ var record = myForm.getRecord(); var companywyId = record.get("companyId&quo ...

  2. Android OkHttp3简介和使用详解

    一 OKHttp简介 OKHttp是一个处理网络请求的开源项目,Android 当前最火热网络框架,由移动支付Square公司贡献,用于替代HttpUrlConnection和Apache HttpC ...

  3. 如何实现一个串行promise

    异步执行任务A.B.C,...... 1.使用数组的reduce方法,reduce里有四个参数,pre,next,index,arr, 2.如果then方法里返回的是一个promise对象,那么执行下 ...

  4. GitHub-Microsoft:DotNet2

    ylbtech-GitHub-Microsoft:DotNet2 1.返回顶部 · SignService Code Signing service and Client for Authentico ...

  5. regsvr32 错误解决方案

    regsvr32对dll进行注册时报错,0x80070005表示权限不够,虽然是以管理员身份登录,但是仍然需要如下操作: 在运行命令提示符的时候,请右击 命令提示符 选 以管理身份运行.

  6. selenium元素定位方式xpath总结

    一.绝对路径(不要使用,除非已经使用了所有方式仍然无法定位)方法:根据实际目录,逐层输写.例子: find_element_by_xpath("/html/body/div[2]/form/ ...

  7. 2019.11.29 SAP SMTP郵件服務器配置 發送端 QQ郵箱

    今天群裏的小夥伴問了如何配置郵件的問題,隨自己在sap裏面配置了一個 1.    RZ10配置參數 a)       参数配置前,先导入激活版本 执行完毕后返回 b)      输入参数文件DEFAU ...

  8. [笔记] Ubuntu机器添加新硬盘安装流程

    SSD虽然快,但是容量不够用,买了块希捷4TB的机械硬盘,准备给台机扩容. 安装环境 OS: Ubuntu 18.04 安装新硬盘 问了客服,原来这款机箱已经带了硬盘滑槽,不需要固定螺钉了. 买了SA ...

  9. 【SVN】导出项目后报错汇总

    原文链接 1.jsp页面内:标点符号,引入报错 解决方法:关闭此项目的jsp验证,右键,最下面一个,Verification,右边一溜只留一个dtd就好 2. 编码问题-乱码 刚拉下来的项目编码可能与 ...

  10. .NET制作滚动条

    今天,在工作的时候,刚好做到了滚动条,对这点不是很懂,所以,研究了一下,记录在这里,与大家分享. 对于前台页面,我们就只需要设置数据表的样式:style="overflow: auto; 即 ...