参考文档

枚举

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. Mysql general_log 日志详解

    开启 general log  将所有到达MySQL Server的SQL语句记录下来. 一般不会开启开功能,因为log的量会非常庞大.但个别情况下可能会临时的开一会儿general log以供排障使 ...

  2. 品牌logo在EDM数据营销中的运用

    作为让客户识别并记住的“门面”, 品牌LOGO的设计与宣导一直都是品牌化输出的重中之重 . 而在邮件营销中,为了让用户在浏览邮件内容前先有品牌概念,营销人员在放置LOGO时常常仅把显眼突出纳入考虑因素 ...

  3. Linux 关机/重启命令

    Normal 0 7.8 磅 0 2 false false false EN-US ZH-CN X-NONE MicrosoftInternetExplorer4 /* Style Definiti ...

  4. ras 加密及解密

    rsa 对数据进行加密和解密 #!/usr/bin/env python # coding=utf-8 """ pip3 install rsa "" ...

  5. springboot中静态属性/静态方法从YAML(yml)读取配置属性

    启动类添加注解@EnableConfigurationProperties import jnetman.session.SnmpPref; import org.springframework.bo ...

  6. 如何使用Pythonapi函数写股票策略

    如何使用Python api 函数写股票策略 写策略需要了解的语法包括两方面,一方面是语言本身的语法(包括相关库),另一方面是量化平台提供的api.量化平台提供的api帮助文件里都有了,本文主要介绍写 ...

  7. Computed Styles

    The style object offers no information about the styles that have cascaded from style sheets and aff ...

  8. 使用Zabbix进行IPMI监控

    1.    安装IPMItool软件包 # yum -y install OpenIPMI OpenIPMI-devel ipmitoolfreeipmi 2.    配置Zabbix 服务器端配置z ...

  9. java-最大公约数

    4和2的最大公约数是2呀

  10. [转帖]英特尔的 ME 或侵犯 Minix3 的自由软件许可证

    英特尔的 ME 或侵犯 Minix3 的自由软件许可证 [日期:2017-12-11] 来源:Linux公社  作者:非非然 [字体:大 中 小] https://www.linuxidc.com/L ...