当前位置: 首页 > news >正文

Java skill - @JsonAlias 和 @JsonProperty

Java skill - @JsonAlias 和 @JsonProperty

  • Java skill系列目录:
  • @JsonAlias 和 @JsonProperty
    • 使用 @JsonProperty 的麻烦场景:
    • 使用 @JsonAlias 应对麻烦场景:

Java skill系列目录:

【Java skill - 统计耗时用StopWatch】
【Java skill - 快速创建List、Map集合】
【Java skill - @JsonAlias 和 @JsonProperty】

@JsonAlias 和 @JsonProperty

大家平常使用@JsonProperty来进行对象的序列化和反序列化,可以指定属性的字段名,非常方便,但也有麻烦的时候。

使用 @JsonProperty 的麻烦场景:

@Data
public class Test {@JsonProperty("xing_ming")private String xingMing;
}
  1. java对象序列化的字段名要求是java属性名,json字符串反序列化的接收字段名要求是一个别名。

以上的Test实体类,在【json字符串反序列化】时,这个【xingMing】字段接收的值是在json字符串中字段名为【xing_ming】的值,但是将此java对象返回给前端需要进行序列化时,序列化后的【xingMing】字段名变为【xing_ming】。

  1. json字符串反序列化的接收字段名可能来自多个别名。

以上的Test实体类,在【json字符串反序列化】时,这个【xingMing】字段接收的值是在json字符串中字段名为【xing_ming】,且只能为【xing_ming】的值,如果json字符串中没有【xing_ming】字段,那反序列化后的Java对象的【xingMing】属性为null。

使用 @JsonAlias 应对麻烦场景:

@Data
public class Test {@JsonAlias("xing_ming","XiaoMing","xiaoMing")private String xingMing;
}

java对象序列化后的字段名是java的属性名,json字符串反序列化的接收字段名可以是多个别名。

  1. 以上的Test实体类,在【json字符串反序列化】时,这个【xingMing】字段接收的值是在json字符串中字段名为【xing_ming】、【XiaoMing】、【xiaoMing】的值,解决了麻烦场景2
  2. 以上的Test实体类,在【json字符串反序列化】时,这个【xingMing】字段接收的值是在json字符串中字段名为@JsonAlias注解配置的多个别名的值,在【java对象序列化】时,序列化后的【xingMing】字段名依然是属性名【xingMing】不变,解决了麻烦场景1

相关文章:

Java skill - @JsonAlias 和 @JsonProperty

Java skill - JsonAlias 和 JsonPropertyJava skill系列目录:JsonAlias 和 JsonProperty使用 JsonProperty 的麻烦场景:使用 JsonAlias 应对麻烦场景:Java skill系列目录: 【Java skill - 统计耗时用StopWatch】 【Java skill - …...

【实际开发18】- 静态 3

目录 1. 调试与评估 2. 单元测试的管理 1. 单元测试的文档 3. 系统集成的模式与方法 1. 集成测试前的准备 2. 集成测试的模式 3. 大棒集成方法 ( Big-bang Integration) 4. 自顶向下和自底向上集成方法 1. 自顶向下法 ( Top-down Integration ) 2. 自底向上法 ( Bott…...

【swagger2】开发api文档

文章目录一、swagger2 简介背景Open API ???swagger2的作用swagger2常用工具组件:二、Springfox三、springBoot使用swagger2(简单示例)四、Swagger-UI使用五、配置文件1、配置类:给docket上下文配置api描述信息2、配置类&#…...

Github 上如何提交 pull request

什么是复刻(forking)? 我们可以通过复刻操作将喜爱的仓库保存自己的Github账户中,以便独立地对其进行操作。 通过复刻,我们可以得到包含完整版本历史的目标仓库的实例,之后可以对复刻得到的仓库进行任意操作而不会影响…...

Redis面试知识

概述 Redis 是速度非常快的非关系型(NoSQL)内存键值数据库,可以存储键和五种不同类型的值之间的映射。 键的类型只能为字符串,值支持五种数据类型:字符串、列表、集合、散列表、有序集合。 Redis 支持很多特性,例如将内存中的数据持久化到硬盘中,使用复制来扩展读性能…...

Spring面试重点(四)——Spring事务

Spring事务 事务的方式 spring中使用事务有两种方式,一种是编程式事务,一种是声明式事务。编程式事务推荐使用TransactionTemplate,实现TransactionCallback接口,需要编码实现;声明式事务只需要在函数增加注解Transa…...

♡ — MySQL 存储引擎

MySQL 存储引擎架构 MySQL 存储引擎采用的是插件式架构,支持多种存储引擎,我们甚至可以为不同的数据库设置不同的存储引擎以适应不同场景的需要;存储引擎是基于表的,而不是数据库。 MyISAM 和 InnoDB 的区别 MySQL 5.5 之前&am…...

大数据技术架构(组件)34——Spark:Spark SQL--Optimize

2.2.3、Optimize2.2.3.1、SQL3.3.1.1、RB1、Join选择在Hadoop中,MR使用DistributedCache来实现mapJoin。即将小文件存放到DistributedCache中,然后分发到各个Task上,并加载到内存中,类似于Map结构,然后借助于Mapper的迭…...

Zookeeper实现分布式锁

文章目录ZK节点类型watch监听机制Zookeeper实现分布式锁锁原理创建锁的过程释放锁的过程ZK锁的种类代码实现Zookeeper是一个开源的分布式协调服务,是一个典型的分布式数据一致性解决方案。 分布式应用程序可以基于Zookeeper实现诸如数据发布/订阅,负载均…...

MFC 添加重新启动管理器支持

重启管理器是添加到 Visual Studio for Windows Vista 或更高版本操作系统的功能 如果发生意外关闭或重启,重新启动管理器将为你的应用程序添加支持。 重新启动管理器的行为取决于应用程序的类型。 如果你的应用程序是文档编辑器,则重新启动管理器让应用…...

一文带你深刻的进入Python,并且了解Python的优缺点

最近几年Python被吹的神乎其神,很多同学都不清楚Python到底能干什么?就盲目去学习Python,今天我就Python的应用领域来简单盘点一下,让想学习Python 的同学找对方向不迷茫。 2. Python 的特点 这里就谈谈自己的看法,首先 Python是…...

别具一格,原创唯美浪漫情人节表白专辑,(复制就可用)(html5,css3,svg)表白爱心代码(4)

别具一格,独此一家,原创唯美浪漫情人节表白专辑 不一样的惊喜哦~!(html5,css3,svg)表白爱心代码(复制就可用)(4) 目录 款式四:时光的记忆款 1、拷贝完整源代码 2、更新时光盒所…...

编译原理—翻译方案、属性栈代码

系列文章戳这里👇 什么是上下文无关文法、最左推导和最右推导如何判断二义文法及消除文法二义性何时需要消除左递归什么是句柄、什么是自上而下、自下而上分析什么是LL(1)、LR(0)、LR(1)文法、LR分析表LR(0)、SLR(1)、LR(1)、LALR(1)文法之间的关系编译原理第三章习…...

链表

一、从尾到头打印链表题目&#xff1a;输入一个链表&#xff0c;按链表从尾到头的顺序返回一个ArrayList。解题思路&#xff1a;使用栈作为中转&#xff0c;可以实现倒置打印classSolution { public:vector<int> printListFromTailToHead(ListNode* head){//使用栈完成中…...

CSS 样式优先级

CSS 样式优先级决定了最终呈现在浏览器中的样式是哪一组样式&#xff0c;在多组样式中有冲突时&#xff0c;最终呈现在浏览器中的样式是具有最高优先级的样式。 CSS 样式优先级顺序如下&#xff1a; 内联样式 > 内部样式 > 外部样式 !important > 内联样式 > ID…...

SpingMVC获取请求参数

通过ServletAPI获取请求参数将HttpServletRequest作为控制器方法的形参&#xff0c;此时HttpServletRequest类型的参数表示封装了当前请求的请求报文的对象。html<form th:action"{/param/servletAPI}" method"post">用户名&#xff1a;<input ty…...

微搭使用笔记(二)微搭低代码平台介绍及基础使用

概述 官网地址&#xff1a; 官网 官方文档&#xff1a; 官方文档 FAQ: FAQ 腾讯云微搭低代码是一个高性能的低代码开发平台&#xff0c;用户可通过拖拽式开发&#xff0c;可视化配置构建 PC Web、H5 和小程序应用。支持打通企业内部数据&#xff0c;轻松实现企业微信管理、工…...

CountDownLatch的定义、使用 、原理

一、定义 CountDownLatch的作用很简单&#xff0c;就是一个或者一组线程在开始执行操作之前&#xff0c;必须要等到其他线程执行完才可以。我们举一个例子来说明&#xff0c;在考试的时候&#xff0c;老师必须要等到所有人交了试卷才可以走。此时老师就相当于等待线程&#xff…...

《Terraform 101 从入门到实践》 Terraform在公有云Azure上的应用

《Terraform 101 从入门到实践》这本小册在南瓜慢说官方网站和GitHub两个地方同步更新&#xff0c;书中的示例代码也是放在GitHub上&#xff0c;方便大家参考查看。 简介 Azure是微软的公有云&#xff0c;它提供了一些免费的资源&#xff0c;具体可以查看&#xff1a; https:/…...

别具一格,原创唯美浪漫情人节表白专辑,(复制就可用)(html5,css3,svg)表白爱心代码(3)

别具一格&#xff0c;原创唯美浪漫情人节表白专辑&#xff0c; (复制就可用)&#xff08;html5,css3,svg)表白爱心代码(3) 目录 款式三&#xff1a;心形实时显示认识多长时间桃花飞舞&#xff08;猫咪&#xff09;款 1、拷贝完整源代码 2、拷贝完整js代码 3、修改时间 4、…...

照着用就行:2026最新AI论文网站测评与推荐

2026年真正好用的AI论文网站&#xff0c;核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测&#xff0c;千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队&#xff0c;覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…...

ChatTTS API 实战:如何构建高可用的 AI 辅助开发工作流

最近在做一个需要大量语音合成的项目&#xff0c;用到了 ChatTTS API。说实话&#xff0c;直接调用 API 虽然简单&#xff0c;但一旦涉及到生产环境的高并发、稳定性和成本控制&#xff0c;问题就接踵而至。经过一番折腾&#xff0c;我总结了一套基于 Python 异步编程的高可用工…...

3步终极方案:Ruffle Flash模拟器性能优化完全指南

3步终极方案&#xff1a;Ruffle Flash模拟器性能优化完全指南 【免费下载链接】ruffle A Flash Player emulator written in Rust 项目地址: https://gitcode.com/GitHub_Trending/ru/ruffle Ruffle是一个基于Rust语言开发的Flash Player模拟器&#xff0c;专为现代浏览…...

5个维度解析pymatgen:高效实用的材料科学计算与分析工具

5个维度解析pymatgen&#xff1a;高效实用的材料科学计算与分析工具 【免费下载链接】pymatgen Python Materials Genomics (pymatgen) is a robust materials analysis code that defines classes for structures and molecules with support for many electronic structure c…...

别再只盯着顶刊了!这5本AI领域的SCI期刊,投稿友好、审稿快,适合你的第一篇论文

5本AI领域高性价比SCI期刊&#xff1a;避开顶刊内卷的投稿策略 在人工智能研究领域&#xff0c;发表SCI论文是衡量学术成果的重要指标。然而&#xff0c;Nature Machine Intelligence、IEEE TPAMI等顶刊的投稿竞争异常激烈&#xff0c;审稿周期动辄半年以上&#xff0c;对创新性…...

分布式能力不是功能,而是一种架构约束

网罗开发&#xff08;小红书、快手、视频号同名&#xff09;大家好&#xff0c;我是 展菲&#xff0c;目前在上市企业从事人工智能项目研发管理工作&#xff0c;平时热衷于分享各种编程领域的软硬技能知识以及前沿技术&#xff0c;包括iOS、前端、Harmony OS、Java、Python等方…...

【仿真】【具身智能】云端低成本畅玩Isaac Lab:抢占式实例部署实战

1. 为什么选择云端抢占式实例部署Isaac Lab 第一次接触Isaac Lab时&#xff0c;我和大多数开发者一样被本地部署的高门槛吓退了。一张RTX 3090显卡就要上万元&#xff0c;更别提配套的CPU和内存配置要求。后来尝试过VNC远程连接方案&#xff0c;结果画面卡顿得像在看PPT&#x…...

Z-Image Atelier 生成极限测试:挑战高分辨率与复杂构图下的稳定性

Z-Image Atelier 生成极限测试&#xff1a;挑战高分辨率与复杂构图下的稳定性 最近在玩各种AI绘画工具&#xff0c;发现一个挺有意思的现象&#xff1a;很多模型生成小图看着还行&#xff0c;一旦把分辨率往上提&#xff0c;或者画面内容变得复杂&#xff0c;就容易“翻车”。…...

4步掌握glTF-Blender-Exporter实现3D模型高效导出

4步掌握glTF-Blender-Exporter实现3D模型高效导出 【免费下载链接】glTF-Blender-Exporter Moved to https://github.com/KhronosGroup/glTF-Blender-IO. 项目地址: https://gitcode.com/gh_mirrors/gl/glTF-Blender-Exporter glTF-Blender-Exporter是一款由Khronos Gro…...

CentOS 7下Google Chrome离线安装全攻略(附依赖包下载清单)

CentOS 7下Google Chrome离线安装全攻略&#xff08;附依赖包下载清单&#xff09; 在企业级Linux环境中&#xff0c;CentOS 7因其稳定性和安全性仍然是许多组织的首选。然而&#xff0c;当需要在隔离网络环境下部署现代浏览器时&#xff0c;依赖关系往往成为技术人员的噩梦。…...