jackson使用@JsonDeserialize与@JsonSerialize控制序列化与反序列化使用的实际类型
1.简介
默认情况下,序列化时会获取对象的实际类型,然后根据可见性规则,获取对象以及其父类的所有属性进行序列化
默认情况下,反序列化时,如果使用的对象类型、属性类型不是最终类型,而是接口或者抽象类型,如Map接口等,此时jackson会
选择一种常用的实现类来进行反序列化,如Map->HashMap,List->ArrayList,Set->HashSet等
如果在序列化时只想序列化对象某父级类型的属性,反序列化时希望指定接口或者抽象类型的实现类,jackson提供了以下注解:
- JsonDeserialize:通过as属性控制反序列化后最终的实现类
- JsonSerialize:通过as属性控制序列化时使用的实际父类
2.JsonDeserialize
2.1 实体
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import lombok.Data;import java.util.HashMap;
import java.util.Map;
import java.util.TreeMap;
import java.util.concurrent.ConcurrentHashMap;@Data
public class User {private Integer id;/* 指定反序列化使用的实际类型 */@JsonDeserialize(as = TreeMap.class)private Map<String,String> info1;
jackson使用@JsonDeserialize与@JsonSerialize控制序列化与反序列化使用的实际类型相关推荐
- ISerializable接口-控制序列化与反序列化(回答C#不需要实现此接口也可以序列化,那么实现该接口的意义是什么?)
https://www.cnblogs.com/fanfan-90/p/12038928.html (回答C#不需要实现此接口也可以序列化,那么实现该接口的意义是什么?) ISerializable接 ...
- 【jackson】@JsonDeserialize 和 @JsonSerialize
文章目录 1.概述 2.[需求] 3.[实现方式] 3.1 @JsonDeserialize 3.2 @JsonSerialize 4.案例 4.1 实体类 4.2 GenderJsonDeseria ...
- jackson驼峰转下划线注解_jackson序列化与反序列化的应用实践
作者 | zhouweixin 来源 | urlify.cn/iEbiAz 66套java从入门到精通实战课程分享 1 相关概念 序列化: 把对象转换为字节序列的过程称为对象的序列化 反序列化: 把字 ...
- jackson (json、xml的序列化与反序列化)
jackson用于java对象到json的序列化与反序列化.还支持xml格式. jackson用于实现json与java对象的序列与反序列化.web service要实现跨机器传送对象那么就需要有一种 ...
- java 序列化工具kryo_java jackson avro kryo等几种序列化与反序列化工具的使用
最近由于工作需要,需要研究常用的集中序列化方式,主要目的是对象序列化后占用空间会大大减少,便于存储和传输,下面是几种序列化方式的使用demo 1. Java自带的Serialize 依赖jar包:无 ...
- java string 反序列化_java序列化和反序列化
引语: 平时我们在运行程序的时候,创建的对象都在内存中,当程序停止或者中断了,对象也就不复存在了.如果我们能将对象保存起来,在需要使用它的时候在拿出来使用就好了,并且对象的信息要和我们保存 时的信息一 ...
- java中对象的序列化和反序列化
[对象的序列化和反序列化 ] 1.定义: 序列化--将对象写到一个输出流中.反序列化则是从一个输入流中读取一个对象.类中的成员必须是可序列化的,而且要实现Serializable接口,这样的类的对象才 ...
- 谈谈:.Net中的序列化和反序列化
序列化和反序列化相信大家都经常听到,也都会用, 然而有些人可能不知道:.net为什么要有这个东西以及.net Frameword如何为我们实现这样的机制, 在这里我也是简单谈谈我对序列化和反序列化的一 ...
- Java对象表示方式1:序列化、反序列化和 transient 关键字的作用
前言快速到底 平时我们接触到的 Java 对象全都是在内存中的对象(它像磁盘中的一个个文件那样实实在在的存在着),所以它是无法进行 IO 操作或者网络通信的,因为在进行 IO 操作或者网络通信的时候, ...
最新文章
- JVM堆新生代分配比例
- 出国留学想申请国家留学基金委的奖学金?传说中的csc! 从这里入手就对了!
- VTK:可视化之VectorField
- 从零开始学习docker(九)持久化存储和数据共享之 bind Mounting
- 深入理解脚本化CSS系列第五篇——动态样式
- localhost与127.0.0.1之间的关系更改
- opencv 学习第三课 画线段 圆 椭圆 矩形 多边形 插入文字 代码注释版 保证你每一行都能读懂
- Linux内核【链表】整理笔记(1)
- python能print中文吗_python用print输出中文字符
- 关系型数据库学习手记——初见倾心PostgreSQL、MySQL、SQLite、MongoDB
- 小知识 定位测绘领域中全站仪/接收机RTK精度1cm+1ppm的含义
- HDCP认证过程-收集网上的,作为记录
- 使用Excel批量生成sql,包括日期格式
- 如何有效突破微信每天限加20个好友的技巧
- Vue 关闭浏览器清除Cookies
- css3中3D变换的景深和灭点
- 基于51单片机的心率脉搏计检测系统
- 上海在职研究生计算机专业考什么,中国人民大学计算机专业在职研究生考试考什么?...
- 使用restTemplate启动报错:Field restTemplate in com.demo.service.OrderToMemberService required a bean of ty
- 特朗普纽约投资项目售价8.5亿