枚举类 json格式 的正反转化

Gson枚举序列化实现 众所周知,Json是无法传递枚举类型的,在对Json处理的过程中,可能大家或多或少都会遇到对于枚举处理的问题,当然解决方式也有很多种,本篇仅针对使用Gson处理Json时对于枚举问题给出一种解决方式,可能并不能适用于小伙伴们实际应用的所有场景,但作为借鉴也算是一个不错的选择。 阅读详情

枚举类 json格式 的正反转化

例如有以下枚举:

@AllArgsConstructor //lombok的有参构造注解
public enum TestEnum {
    AAA(0,"AAAa"),
    BBB(1,"BBBb"),
    CCC(2,"CCCc"),
    DDD(4,"DDDd");
    
    @JsonValue
    private Integer id;
    private String name;
}
  1. 默认不加 @JsonValue 注解时,以枚举对象的名字转json

AAA(0,“AAAa”), 转json后 “AAA”

  1. 给某个字段加@JsonValue注解时,如给name字段加@JsonValue注解

AAA(0,“AAAa”), 转json后 “AAAa”

  • 但是 如果这个字段是integer类型的,如给Integer id字段加@JsonValue注解

DDD(4,“DDDd”), 转json后 4 (注意我的4 没有带引号 这个4是数字类型)

数字类型的4反转枚举类时,会把4当做索引去找枚举对象
四个枚举对象索引为[0,1,2,3] 数字类型4反转时会报错

解决办法:

  1. 将 Integer id 改为 String id 这样最好
  2. 保证每个枚举对象 integer id 的值 和索引值对应(自上而下 从0开始) 这样很局限
解析JSON中的枚举默认值:Java实践指南 注解允许我们在枚举元素上定义一个默认值,当JSON中存在未知的枚举值时,这个默认值将被使用。这要求启用反序列化特性。首先,我们定义一个简单的枚举类型,代表员工的类型。 阅读详情

相关推荐

自定义枚举对象序列化规则: 在Json中以枚举的code值表示枚举;枚举序列化时,新增枚举描述字段;String到IEnum的转换

GetterENABLE("1", "启用"),DEACTIVATE("0", "停用");@EnumValue// 自定义toString方法返回code@Override。

专注于计算机研发知识和资讯分享 1202

js中的json,枚举及获取元素的方法

对象的访问 对象枚举由两种方法: (1)第一种是对象名.属性名(obj.name) (2)第二种是对象名[‘属性名’](obj[‘name’]) 举例: var obj = { name : "wang"; age : 20; sex : "male"; } console.log(obj['name']); 对象的枚举 1.对象的枚举也称为对象的遍历;可以用for in遍历对象的每一个属性;...

weixin_44916019的博客 3279

【脑电绘图教程 2】使用Brainstorm进行脑电处理及源定位

Brainstorm 是一个开源应用程序,支持MEG、EEG、fNIRS、ECoG、深度电极和其他电生理学的数据分析,尤其用于MEG、EEG的源定位。Brainstorm的主要优点是其简单直观的图形界面,不需要进行任何编程,即可上手MEG、EEG分析,此外,它还支持多种数据类型(基本上EEGLab支持的,它都支持),并且具有数据批量处理功能,可以很方便的分析自己的数据。

qq_40735196的博客 1万+

python进阶:JSON与枚举

JSON 一、JSON的定义 json是一种轻量级数据交换格式,json是一种数据格式!! json字符串是一种承载形式,表现形式 json的对象类型是json众多格式的一种类型,此外还有json数组等。。 所谓json对象特指javascript中对象的一种,在其他语言中无此说法! json格式经过json.loads(反序列化)方法后,转换对应关系: json、javascrpt...

qq_27366789的博客 2775

量化数据采集实战:从App接口逆向到Python爬虫系统构建

数据采集是量化分析和自动化策略的基石,其核心原理是通过程序模拟客户端行为,从目标服务器获取结构化数据。在金融科技领域,高效、稳定的数据采集能力直接决定了策略研究的深度和时效性。面对金融App常见的反爬机制,如请求签名和身份认证,工程师需要掌握网络协议分析、接口逆向与模拟请求等关键技术。这些技术不仅能用于获取市场情绪、资金流向等高频数据,更是构建个人量化研究基础设施、实现从主观看盘到客观数据分析转型的关键一步。本文以实战为例,深入剖析了如何系统性地逆向分析数据接口、破解签名算法,并最终构建一个包含代理IP池与

weixin_29032489的博客 1477

【spark源码修改】hive3.1.3 spark3.5.4编译,需要修改源码,最终编译成功

【spark源码修改】hive3.1.3 spark3.5.4编译,需要修改源码,最终编译成功,附带问题分析详细过程

spark_dev的博客 1911

JSON与对象(枚举类对象)之间的相互转换

最近在处理枚举类型的值的时候遇到了很多问题,现在将他们记录下来,一来以后可以增强自己的记忆,二来让自己坚持一个记笔记的好习惯。也可以供大家参考,提出问题,一起探讨。 问题一:如何在实体类中定义枚举类型的字段(直接上代码) /** * 定义政府文件的来文单位的枚举类 * @author Administrator * */ public enum FromUnit { State

myblog_dhy的专栏 3万+

STM32 BootLoader 入门教程:从原理到 APP 跳转实现

在 STM32 项目开发中,BootLoader 通常用于实现固件升级、程序引导和应用程序校验。本文从最基础的 BootLoader 原理开始,讲解 STM32 内部 Flash 分区设计、APP 地址偏移、向量表重定位、BootLoader 跳转 APP 的核心代码,以及实际开发中常见的问题。本文适合刚开始接触 STM32 BootLoader、IAP 在线升级、串口升级、OTA 升级的开发者阅读。

lidecong133的博客 1665

看看人家在接口中使用枚举类型的方式,那叫一个优雅!

点击上方“芋道源码”,选择“设为星标”管她前浪,还是后浪?能浪的浪,才是好浪!每天 10:33更新文章,每天掉亿点点头发...源码精品专栏原创 | Java 2021超神之路,很肝~中文详细注释的开源项目RPC 框架 Dubbo 源码解析网络应用框架 Netty 源码解析消息中间件 RocketMQ 源码解析数据库中间件 Sharding-JDBC 和 MyCAT 源码解析作业调度中间件 E...

芋艿V 1371

避坑指南:为什么你的conda环境装不上Mamba?从CUDA到ABI的深度排查

本文深入解析conda环境中安装Mamba架构时常见的CUDA版本冲突、ABI不匹配等问题,提供从基础检查到深度排查的系统化解决方案。针对`causal-conv1d`和`mamba-ssm`安装失败场景,详细讲解PyTorch版本绑定、编译器工具链兼容性等关键技术要点,并给出预编译wheel选择、动态链接库配置等实用修复方案。

weixin_33738555的博客 345

睿尔曼超轻量仿人机械臂-ROS第一篇 启动机械臂的Moveit

本文主要讲述了睿尔曼六轴机械臂在ROS中的功能包配置,及如何根据文件启动Moveit做仿真。

realman_Rop的博客 7486

js中的json及枚举

一. js里面的json JSON的语法可以表示以下三种类型的值 (1) 简单值:使用与JavaScript相同的语法,可以在JSON中表示字符串、数值、布尔值和null。 注意:JSON字符串必须使用双引号(单引号会导致语法错误) "小张" (2)对象:对象作为一种复杂数据模型,表示的是一组无序的键值对。而每个键值对中的值可以是简单值,也可以是复杂数据类型的值 var i...

weixin_44859744的博客 2160

基于微信小程序的智能门禁管理系统的设计与实现(文章+源码)

基于微信小程序门禁管理小程序,该系统支持用户注册登录、查阅新闻动态、提交开门申请和发布留言等功能,同时管理员可以进行用户管理、新闻信息管理、门禁审批管理和留言管理等操作。该系统将采用IDEA开发工具、SSM框架和MYSQL数据库等相关技术,实现用户登录注册、个人信息管理、门禁申请提交、管理员审核等功能。该系统的实现,可以有效提高门禁管理的效率和便利性,同时也具有较强的可扩展性和可维护性。本研究对于智能门禁管理系统的设计和实现具有一定的参考价值。

u011779145的博客 1396

Java序列化踩坑指南

序列化一些需要注意的坑,给大家介绍下。

机智的爆爆哥 1422

告别卡顿!用LVGL+DMA刷新STM32F407的SPI屏幕,性能提升实战

本文详细介绍了如何通过LVGL+DMA技术优化STM32F407驱动SPI屏幕的性能,实现接近60FPS的流畅刷新。从硬件瓶颈分析到SPI与DMA的精细化配置,再到LVGL的双缓冲机制与局部刷新优化,提供了一套完整的性能提升方案。特别适合嵌入式GUI开发中面临卡顿问题的工程师参考。

weixin_42531588的博客 378

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

工作中使用到的单词(软件开发)

1.エイリアス   alias 别名 powershell使用 get-help 命令时,会得到与此命令 相关(别名)的命令 2.プロキシ proxy 代 理 3.プロモート   promote 促进,提升   开发的系统新功能上线发布,有时会使用到这个词,比如 STプロモート 还有使用リリース这个词的。比如STリリース。个人认为两者含义相同。 4.見逃し み................................................................

sun0322 6万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

工业视觉笔记快捷搜索---目录

工业视觉需要时可抄的代码---持续更新 一(1-28)目录1、批量访问图片,等待键盘1.2 批量访问图像(不用提前批量重命名)--访问文件夹底下所有同类型图像1.2.1 单独只有批量访问的1.3 批量访问图像(也是不用提前批量重命名)--访问文件夹底下所有同类型图像1.4 批量访问图像(也是不用提前批量重命名)--访问文件夹底下所有同类型图像1.5 批量访问图像(不用提前批量重命名)--单张和批量前面路径相同(jiefeng)1.6 批量访问图像(不用提前批量重命名)--单张和批量前面路径相同(bioake

weixin_47059239的博客 1529

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Day22:枚举、json

###JDK1.5新特性:枚举 从jdk1.5之后程序之中提供了enum的关键字,此关键字可以实现枚举的定义。 枚举属于一种多例设计模式,那么既然是多例设计模式,那么在一个类之中可以定义的结构是非常多的:列如:构造方法、普通方法、属性等,那么这些内容在枚举类中依然可以直接定义,但是需要注意的是:枚举类中定义的构造方法不能够采用非私有化定义(public 无法使用)。 Enum类与enum关...

亲爱的瑶的博客 618

枚举以对象或者Json格式形式返回到前端

在实际项目中,有很多地方都会运用到枚举,为啥使用枚举可以自行百度。很多时候我们返回给前端的实体里面也会包含枚举属性, 如果你只返回一个code给前端的话,那他可能就懵了,这返回的是啥玩意,就比如: public enum PeriodLoanBillEnum { WAIT_REPAY("WAIT_REPAY", "待还款"), PARTIAL_REPAY("PARTIAL_R...

qq_37025445的博客 1万+

Json不能解析枚举类型解决方案

Json不能解析枚举类型解决方案

ChineseCaptainOn的博客 1077

Json 转换 1 转成 true 0 转成false

转载于:https://www.cnblogs.com/thinkaspx/p/3449379.html

weixin_30666943的博客 1706

别再用 toString() 了!Spring Boot + Jackson 处理枚举的七种方式

在系统开发中,JSON 作为轻量级数据交换格式被广泛应用,而枚举(Enum)作为 Java 等语言中表示固定常量集合的类型,其与 JSON 的交互处理至关重要。传统场景下,枚举序列化可能直接输出其名称(如 "MALE"),但实际业务中常需更灵活的映射,例如输出数字代码(1)或国际化描述("男")。同时,反序列化时需根据 JSON 值(如数字或字符串)精准匹配枚举实例。本篇文章将详细介绍枚举值在序列化和反序列化过程中的核心处理机制、常见应用场景及最佳实践方案。

jike007gt的博客 1010

Jackson对象和JSON的相互转换,传json时枚举类型传Integer、时间戳转固定格式时间

json(JavaScript Object Notation),JavaScript对象表示法,是一种轻量级的数据交换格式,被广泛应用于WEB应用程序开发。简洁和清晰的层次结构、有效地提升网络传输效率、支持多种语言。//JSON对象"name": "小王","sex": "女","age": 18//JSON数组,可为相同JSON对象的集合、也可为不同对象的集合[{"name": "张三","sex": "男","age": 3}, {"name": "李四",

qq_44700578的博客 1720

Enum枚举序列化JSON value to string问题

在MODEL project上引用Json.net DLL 然后加上Attribute [JsonConverter(typeof(StringEnumConverter))] 例 public class ProcesserCondition     {         [JsonConverter(typeof(StringEnumConverter))]    

Allen_白的专栏 1万+

MyBatis 是否可以映射 Enum 枚举类?

如果你需要自定义枚举类型的处理方式,比如按照枚举的序号(ordinal)或者自定义的属性来存储和读取,你可以编写自定义的。在 MyBatis 中,枚举类型的默认处理方式是通过。这意味着当一个枚举类型的字段被持久化到数据库时,默认情况下它会被保存为枚举名称。实现类,指定如何将枚举类型与数据库中的特定类型(如 VARCHAR 或 INT)相互转换。,该处理器会将枚举的序号(从0开始的索引)与数据库中的数字字段进行映射。标签下指定使用哪个枚举处理器,或者在全局配置中注册自定义的。在映射文件中,你可以在。

学亮编程手记 1219

web前端

一、json 1、json:是对象的一个表示方法 作用:是存储数据和文本信息的,是后端给前端交互返回的数据格式,类似于xml(也就是里面的标签使用自定义来写的) json文件比xml更小、更快、更容易解析。 2、格式 先建立一个json文件、然后写出自定义属性 { "name": "毛豆", "sex": 23, "hobby":[ {"name":"篮球"}, {"n...

weixin_44923337的博客 116
上一篇: 使用@Scheduled注解 定时任务会重复执行多次的问题
行者齐天
博客等级 码龄7年 2粉丝 2原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值