Spring:jackson-annotaions注解大全

文章目录

  • 一、介绍
  • 二、@JsonProperty
  • 三、@JsonIgnore
  • 四、@JsonInclude
  • 五、@JsonFormat
  • 六、@JsonCreator 和 @JsonProperty (在构造函数中)
  • 七、@JsonTypeName 和 @JsonTypeInfo
  • 八、@JsonIgnoreProperties
  • 九、@JsonSerialize
  • 十、@JsonDeserialize

一、介绍

jackson-annotations 是 Jackson 库的一部分,它提供了一系列注解,用于控制 Java 对象与 JSON 之间的序列化和反序列化过程。

二、@JsonProperty

用于指定 Java 类的属性名与 JSON 中的字段名之间的映射关系。

public class User {  @JsonProperty("user_name")  private String name;  // getters and setters  
}

在上面的例子中,Java 对象的 name 属性将被序列化为 JSON 字段 user_name。

三、@JsonIgnore

用于指定某个 Java 类的属性在序列化为 JSON 时被忽略。

public class User {  private String name;  @JsonIgnore  private String password;  // getters and setters  
}

在上面的例子中,password 属性在序列化为 JSON 时将被忽略。

四、@JsonInclude

用于指定在序列化时哪些值应该被包含。例如,可以使用 @JsonInclude(Include.NON_NULL) 来只包含非空值。

@JsonInclude(Include.NON_NULL)  
public class User {  private String name;  private String email;  // getters and setters  
}

在上面的例子中,如果 email 为 null,则不会被包含在序列化的 JSON 中。

五、@JsonFormat

用于自定义日期和时间的格式。

public class Event {  @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")  private Date eventDate;  // getters and setters  
}

在上面的例子中,eventDate 属性将按照指定的日期时间格式进行序列化和反序列化。

六、@JsonCreator 和 @JsonProperty (在构造函数中)

用于自定义反序列化时的构造函数。

public class User {  private String name;  private int age;  @JsonCreator  public User(@JsonProperty("user_name") String name, @JsonProperty("user_age") int age) {  this.name = name;  this.age = age;  }  // getters and setters  
}

在上面的例子中,我们使用了一个带有 @JsonCreator 注解的构造函数,并使用 @JsonProperty 注解来指定 JSON 字段与 Java 构造函数参数之间的映射关系。

七、@JsonTypeName 和 @JsonTypeInfo

用于处理多态类型。

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "type")  
@JsonTypeName("employee")  
public class Employee {  // ...  
}  public class Manager extends Employee {  // ...  
}

在上面的例子中,Employee 和 Manager 类都可以被序列化为 JSON,并且包含一个 type 字段来指示对象的实际类型。反序列化时,可以根据这个 type 字段来创建正确的对象实例。

八、@JsonIgnoreProperties

  • 作用:在序列化或反序列化时忽略Java Bean中的某些属性。
  • 示例:@JsonIgnoreProperties({“propertyName1”, “propertyName2”})
  • 注意:这是一个类注解,可以指定多个要忽略的属性名。

九、@JsonSerialize

  • 作用:用于自定义属性的序列化方式。
  • 示例:配合自定义的序列化器使用,如@JsonSerialize(using = CustomSerializer.class)
  • 注意:可以作用于属性或getter方法上。

十、@JsonDeserialize

  • 作用:用于自定义属性的反序列化方式。
  • 示例:配合自定义的反序列化器使用,如@JsonDeserialize(using = CustomDeserializer.class)
  • 注意:可以作用于属性或setter方法上。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/20335.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

痛心!2岁女童被从17楼推下坠亡,凶手疑是未成年

一起又一起的案件, 如同一部沉重的史诗, 无声地述说着一个共同的真理: 严惩恶魔,实则是在庇护着无数纯真的心灵,守护着更多的孩子。 因为每一起案件的背后,都隐藏着一个个令人心碎的故事。 01 近日&#xf…

错误发生在尝试创建一个基于有限元方法的功能空间时

问题&#xff1a; index cell.index(#直接使用从0开始的索引if0<1ndex<10: #正集流体 subdomains_x[cell,index(] 1 fem1 /usr/bin/python3.8 /home/wy/PycharmProjects/pythonProject2/fem1.pyUnknown ufl object type FiniteElementTraceback (aost recent call last)…

python编程:实现对数据库中图片文件的查看及比对

当谈到图像查看和管理时,我们往往会使用一些工具软件,比如Windows自带的照片查看器或者第三方工具。那如果你想要一个更加强大和定制化的图像查看器呢?这时候就需要自己动手写一个程序了。 C:\pythoncode\new\ShowSqliteImage.py 这里我们将介绍一个使用Python和wxPython编写…

解析Java中1000个常用类:Iterable类,你学会了吗?

在 Java 编程中,集合(Collections)是非常重要的数据结构。无论是数组、列表、集合,还是其他形式的集合,如何高效地遍历这些集合都是一个关键问题。 Java 提供了一个基础接口 Iterable,它为集合类的遍历提供了统一的接口。 本文将深入探讨 Iterable 接口,介绍其用法、实…

FPGA-ARM架构与分类

ARM架构&#xff0c;曾称进阶精简指令集机器&#xff08;Advanced RISC Machine&#xff09;更早称作Acorn RISC Machine&#xff0c;是一个32位精简指令集&#xff08;RISC&#xff09;处理器架构。 主要是根据FPGA zynq-7000的芯片编写的知识思维导图总结,废话不多说自取吧 …

【Python内功心法】:深挖内置函数,释放语言潜能

文章目录 &#x1f680;一、常见内置函数&#x1f308;二、高级内置函数⭐1. enumerate函数&#x1f44a;2. eval函数❤️3. exec函数&#x1f4a5;4. eval与exec 中 globals与locals如何用☔4-1 globals 参数&#x1f3ac;4-2 locals 参数 ❤️5. filter函数&#x1f44a;6. z…

Python 之SQLAlchemy使用详细说明

目录 1、SQLAlchemy 1.1、ORM概述 1.2、SQLAlchemy概述 1.3、SQLAlchemy的组成部分 1.4、SQLAlchemy的使用 1.4.1、安装 1.4.2、创建数据库连接 1.4.3、执行原生SQL语句 1.4.4、映射已存在的表 1.4.5、创建表 1.4.5.1、创建表的两种方式 1、使用 Table 类直接创建表…

16岁适合做什么编程题:探索编程世界的入门之旅

16岁适合做什么编程题&#xff1a;探索编程世界的入门之旅 在数字化浪潮席卷而来的今天&#xff0c;编程已成为一项重要的技能。对于16岁的青少年来说&#xff0c;学习编程不仅可以锻炼逻辑思维&#xff0c;还能为未来的职业发展打下坚实的基础。那么&#xff0c;16岁适合做什…

安卓如何书写注册和登录界面

一、如何跳转一个活动 左边的是本活动名称&#xff0c; 右边的是跳转界面活动名称 Intent intent new Intent(LoginActivity.this, RegisterActivity.class); startActivity(intent); finish(); 二、如果在不同的界面传递参数 //发送消息 SharedPreferences sharedPreferen…

【学习Day4】计算机基础

✍&#x1f3fb;记录学习过程中的输出&#xff0c;坚持每天学习一点点~ ❤️希望能给大家提供帮助~欢迎点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;指点&#x1f64f; ❤️学习和复习的过程是愉快嘚。 1.7.3 流水线 流水线&#xff08;pipeline&#xff09;技术…

单片机按键处理模块

一 介绍 1.key_board用于单片机中的小巧多功能按键支持&#xff0c;软件采用了分层的思想&#xff0c;并且做到了与平台无关&#xff0c;用户只需要提供按键的基本信息和读写io电平的函数即可&#xff0c;非常方便移植&#xff0c;同时支持多个矩阵键盘及多个单io控制键盘。 …

Python 字符串的运算

在 Python 中&#xff0c;字符串支持一系列的运算操作&#xff0c;包括字符串拼接、重复、比较和成员检测等。以下是一些常见的字符串运算&#xff1a; 字符串拼接&#xff1a;使用加号 可以将两个字符串连接起来。例如&#xff0c;"Hello, " "World" 将…

chap5 CNN

卷积神经网络&#xff08;CNN&#xff09; 问题描述&#xff1a; 利用卷积神经网络&#xff0c;实现对MNIST数据集的分类问题 数据集&#xff1a; MNIST数据集包括60000张训练图片和10000张测试图片。图片样本的数量已经足够训练一个很复杂的模型&#xff08;例如 CNN的深层…

商用未来何时来?软银揭示量子计算商业应用现状

内容来源&#xff1a;量子前哨&#xff08;ID&#xff1a;Qforepost&#xff09; 文丨沛贤/浪味仙 排版丨沛贤 深度好文&#xff1a;3000字丨10分钟阅读 摘要&#xff1a;软银&#xff08;SoftBank&#xff09;先进技术研究所正在积极推进量子计算商业应用&#xff0c;借助与…

如何使用基类指针迭代派生类对象

如果我们想使用基类指针迭代指向的派生类对象&#xff0c;我们需要在基类中声明返回迭代器的虚函数begin和end&#xff0c;然后在派生类中实现begin和end&#xff0c;这样我们就可以使用基类指针指向派生类后使用其迭代器了。 #include<iostream> #include<vector>…

SpringCloud Feign用法

1.在目标应用的启动类上添加开启远程fein调用注解&#xff1a; 2.添加一个feign调用的interface FeignClient("gulimall-coupon") public interface CouponFeignService {PostMapping("/coupon/spubounds/save")R save(RequestBody SpuBondTo spuBounds);…

随记-点选验证码(二)

之前写过一篇文章 随记-点选验证码 &#xff0c;当时借助了 ddddocr 完成了ocr 识别&#xff0c;这篇文章算是对之前的补充。 本次更换了新的方案&#xff1a; 通过 ultralytics&#xff08;YOLO8&#xff09;训练自己的模型 吐槽一句&#xff1a;标注真是一件耗时的事情啊&am…

解锁用户增长密码:订单排队免单+分红

排队分红模式&#xff0c;作为一种创新的营销策略&#xff0c;正逐渐受到实体店家的青睐。这种策略巧妙洞察了消费者的购物心理&#xff0c;成功地将顾客转变为商家的共赢伙伴。 坐标&#xff1a;厦门&#xff0c;我是肖琳 深耕社交新零售行业10年&#xff0c;主要提供新零售系…

2024.05.17 校招 实习 内推 面经

绿*泡*泡VX&#xff1a; neituijunsir 交流*裙 &#xff0c;内推/实习/校招汇总表格 1、实习 | 海康机器人2025届「超新星实习生」&#xff08;内推&#xff09; 实习 | 海康机器人2025届「超新星实习生」&#xff08;内推&#xff09; 2、实习 | 大华股份2025届实习生招聘…

鸿蒙实现汉字转拼音

1.使用三方库 pinyin-pro 地址&#xff1a;OpenHarmony三方库中心仓 亲测可用&#xff0c;一共三个关于 转pinyin的库&#xff0c;一个无法使用&#xff0c;另一个时间太久。 ohpm i pinyin-proimport { pinyin } from pinyin-pro;// 获取带音调拼音 pinyin(汉语拼音); // …