枚举

package com.meeno.boot.oa.employee.enums;import com.alibaba.fastjson.annotation.JSONType;
import com.meeno.boot.oa.common.BaseEnum;
import com.meeno.boot.oa.common.json.EnumSerializer;
import com.meeno.boot.oa.common.json.EnumDeserializer;/*** @description: 员工状态枚举* @author: Wzq* @create: 2020-03-13 16:30*/
@JSONType(serializer = EnumSerializer.class, deserializer = EnumDeserializer.class, serializeEnumAsJavaBean = true)
public enum EmployeeStatusEnum implements BaseEnum {ON_THE_JOB(1),//在职DIMISSION(2)//离职;private Integer code;EmployeeStatusEnum(Integer code) {this.code = code;}@Overridepublic Integer getCode() {return this.code;}
}

EnumDeserializer.java

package com.meeno.boot.oa.common.json;import com.alibaba.fastjson.parser.DefaultJSONParser;
import com.alibaba.fastjson.parser.JSONLexer;
import com.alibaba.fastjson.parser.deserializer.ObjectDeserializer;
import com.meeno.boot.oa.common.BaseEnum;import java.lang.reflect.Type;public class EnumDeserializer implements ObjectDeserializer {@Overridepublic <T> T deserialze(DefaultJSONParser parser, Type type, Object o) {final JSONLexer lexer = parser.lexer;Class cls = (Class) type;Object[] enumConstants = cls.getEnumConstants();if (BaseEnum.class.isAssignableFrom(cls)) {for (Object enumConstant : enumConstants) {BaseEnum baseEnum = (BaseEnum) enumConstant;if (lexer.intValue() == baseEnum.getCode()) {return (T) baseEnum;}}}return null;}@Overridepublic int getFastMatchToken() {return 0;}
}

EnumSerializer.java

package com.meeno.boot.oa.common.json;import com.alibaba.fastjson.serializer.JSONSerializer;
import com.alibaba.fastjson.serializer.ObjectSerializer;
import com.meeno.boot.oa.common.BaseEnum;import java.io.IOException;
import java.lang.reflect.Type;public class EnumSerializer implements ObjectSerializer {@Overridepublic void write(JSONSerializer jsonSerializer, Object o, Object o1, Type type, int i) throws IOException {if (o instanceof BaseEnum) {BaseEnum baseEnum = (BaseEnum) o;jsonSerializer.out.write(baseEnum.getCode().toString());} else {jsonSerializer.out.writeEnum((Enum<?>) o);}}
}

SpringBoot返回枚举对象中的指定属性相关推荐

  1. python如何删除对象属性_如何优雅的删除对象中的指定属性?

    要优雅的话,使用 Lodash 的 omit 方法移除不要的属性: const object = { 'a': 1, 'b': '2', 'c': 3 }; const result = _.omit ...

  2. 对象、对象的属性、对象字面量、枚举对象中的属性、可变类型、变量和对象——JS对象

    目录 一.对象 二.对象的属性 三.对象字面量 四.枚举对象中的属性 五.可变类型 六.变量和对象 数据类型: 原始值:(不可变类型) 1.数值 Number 2.大整数 BigInt 3.字符串 S ...

  3. JS基础 -- 枚举对象中的属性

    /** 什么事枚举对象中的属性?* 下面以一个例子来慢慢解释*///创建一个对象var obj = {name: '唐一彩',age: 4000,gender: '男',address: '白马寺'} ...

  4. java集合按大小排序_List集合对象中按照不同属性大小排序的实例

    实例如下: package com.huad.luck; import java.util.arraylist; import java.util.collections; import java.u ...

  5. List根据对象中的指定元素进行排序

    List根据对象中的指定元素进行排序 背景: 在实际开发中,产品对数据会有个各种要求,排序应该最常见,也是比较麻烦的一件事情,很多时候数据不是一条SQL查询出来的,我们将其封装在List中,那么问题来 ...

  6. js删除数组对象中的某个属性的方法

    模拟数组对象数据 let newArr = [{title:'小明', id:18},{title:'小红', id:16}] 方式一:(for循环)删除数组对象中的某个属性,如删除id属性 for ...

  7. js 对象中添加新属性

    js 对象中添加新属性 对象数组添加新属性 同名属性会被覆盖,相同属性会去重

  8. 以下哪个不是python的内置函数_以下哪个 Python 内置函数可以返回列表对象中元素个数。...

    [多选题]假设 x=[0,1,2,3],执行哪些语句之后,x 的值为[0, 1, 2]. [多选题]以下哪些对象的分隔符为逗号. [单选题]已知列表 x=[0,1,2,1,4],那么执行语句 del ...

  9. 实现一个打点计时器,要求 1、从 start 到 end(包含 start 和 end),每隔 100 毫秒 console.log 一个数字,每次数字增幅为 1 2、返回的对象中需要包含一个 can

    实现一个打点计时器,要求 1.从 start 到 end(包含 start 和 end),每隔 100 毫秒 console.log 一个数字,每次数字增幅为 1 2.返回的对象中需要包含一个 can ...

最新文章

  1. vue 定义全局函数
  2. python实例(一)
  3. layui数据表格自定义复选框表头_layui中table表头样式修改方法
  4. 贪心算法+回溯算法+动态规划
  5. javascript导入EXCEL数据
  6. vscode中如何创新建php文件,php – 如何在Visual Studio Code,UNIX中的所有文件中创建所有行结尾(EOL)?...
  7. 调试错误:InternalErro(seeabovefortraceback):BlasGEMMlaunchfailed:a.shape=(300,1),b.shape=(1,10),m=300,n=
  8. 你整明白了吗?Linux Shell 中各种括号的作用 ()、(())、[]、[[]]、{}
  9. JEPLUS之APP自定义插件——JEPLUS软件快速开发平台
  10. python 列表相关应用大全
  11. 路由器信息备份还原指南
  12. Windows 搭建ARM虚拟机 UOS系统
  13. 机器学习、深度学习常见面试题300道
  14. 汇总|医学图像分析领域论文
  15. linux命令gw,Linux 基础命令
  16. matlab fzsxl函数,复指数函数或序列的绘制
  17. BCLinux7.6
  18. 密码学基础知识(一)
  19. 可见光成像通信(OOC)驱动频率区域的计算
  20. Terraform 基础 定义阿里云资源 VPC、安全组

热门文章

  1. Microbiome:animalcules-交互式微生物组分析和可视化的R包
  2. Nature:微生物培养技术发展迅猛,未来要搞定一切!
  3. 高分文章精选 | 纳米孔宏基因组测序的表现
  4. NAR:rrnDB-16S拷贝数校正数据库
  5. 丰度决定了细菌在复杂群落中的功能作用
  6. NC:MetaSort通过降低微生物群落复杂度以突破宏基因组组装难题
  7. thinkphp 个别字段无法更新_香港华为手机大面积死机?只是个别手机更新出问题...
  8. python使用matplotlib可视化、为可视化图像的X轴和Y轴设置自定义的轴标签(axis labels of matplotlib plot)
  9. pandas为dataframe添加新的数据行(rows)、在dataframe后面纵向添加一行数据(数据为列表list形式)、列有不匹配将会使用NA值进行填补
  10. colMedians(x) : Argument ‘x’ must be a matrix、rowMedians(data) : Argument ‘x‘ must be a matrix.