Spring项目中使用jackson序列化key为对象Map
1.注入ObjectMapper
2.注册类HistoricTaskInstance的序列化和反序列化类HistoricTaskInstanceKeySerializer,HistoricTaskInstanceKeyDeSerializer
3.将新的Modeule注册到ObjectMapper中。
class A{
//1.注入ObjectMapper,注意这个ObjectMapper是spring全局的。
@Autowired
private ObjectMapper objectMapper; public void setKeyProcessor(){
SimpleModule sm = new SimpleModule();
//注册序列化,反序列化类。
sm.addKeySerializer(HistoricTaskInstance.class,new HistoricTaskInstanceKeySerializer());
sm.addKeyDeserializer(HistoricTaskInstance.class,new HistoricTaskInstanceKeyDeSerializer());
//注册到ObjectMapper中。
objectMapper.registerModule(sm);
}
}
static class HistoricTaskInstanceKeySerializer extends JsonSerializer<HistoricTaskInstance> {
private final ObjectMapper objectMapper = new ObjectMapper();
@Override
public void serialize(HistoricTaskInstance historicTaskInstance, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
StringWriter writer = new StringWriter();
objectMapper.writeValue(writer, historicTaskInstance);
jsonGenerator.writeFieldName(writer.toString());
}
}
static class SimpleObjectKeyDeSerializer extends KeyDeserializer {
private final ObjectMapper objectMapper = new ObjectMapper();
@Override
public HistoricTaskInstance deserializeKey(String key, DeserializationContext deserializationContext) throws IOException {
return objectMapper.readValue(key, HistoricTaskInstance.class);
}
} class HistoricTaskInstance{
private String name;
private String address;
}
Spring项目中使用jackson序列化key为对象Map的更多相关文章
- spring 项目中在类中注入静态字段
有时spring 项目中需要将配置文件的属性注入到类的静态字段中 例如:文件上传 //文件上传指定上传位置 //resource-dev.properties 有如下参数 #upload UPLOAD ...
- java web项目(spring项目)中集成webservice ,实现对外开放接口
什么是WebService?webService小示例 点此了解 下面进入正题: Javaweb项目(spring项目)中集成webservice ,实现对外开放接口步骤: 准备: 采用与spring ...
- 在Springboot + Mybaitis-plus 项目中利用Jackson实现json对java多态的(反)序列化
Jackson允许配置多态类型处理,当JSON面对的转换对象是一个接口.抽象类或者一个基类的时候,可以通过一定配置实现JSON的转换.在实际项目中,Controller层接收入参以及在Dao层将对象以 ...
- Spring Boot JPA Entity Jackson序列化触发懒加载的解决方案
Spring Jpa这项技术在Spring 开发中经常用到. 今天在做项目用到了Entity的关联懒加载,但是在返回Json的时候,不管关联数据有没有被加载,都会触发数据序列化,而如果关联关系没有被加 ...
- Spring-boot 项目中使用 jackson 遇到的一个问题
jackson介绍 java代码中实现序列化和反序列化的工具类 jackson使用Demo https://github.com/Naylor55/JavaDebrisCode/tree/branch ...
- 项目中redisTemplate设置的key,redis客户端上查询不到的问题
再项目使用了redis储存key,测试需要在客户端删除对应的key,发现查询不到对应的key redis客户端: 发现redisTemplate实际存进去的key会多了几个字符 原因:程序中对key没 ...
- 【主流技术】ElasticSearch 在 Spring 项目中的实践
前言 ElasticSearch简称es,是一个开源的高扩展的分布式全文检索引擎. 它可以近乎实时的存储.检索数据,其扩展性很好,ElasticSearch是企业级应用中较为常见的技术. 下面和大家分 ...
- spring项目中starter包的原理,以及自定义starter包的使用
MAVEN项目中starter的原理 一.原始方式 我们最早配置spring应用的时候,必须要经历的步骤:1.pom文件中引入相关的jar包,包括spring,redis,jdbc等等 2.通过pro ...
- spring项目中使用定时任务
当我们希望在某个时间点来执行一些业务方法的时候就用到定时任务,在spring的项目中使用定时任务很简单.如下 第一步.加入jar包 <dependency> <groupId> ...
随机推荐
- jeesite导入数据库错误:java.sql.SQLException: Incorrect string value: '\xE4\xB8\xAD\xE5\x9B\xBD' for column 'name' at row 1问题解决
如果使用mvn antrun:run -Pinit-db进行数据库导入导致出现如下错误: 解决方法: 这个是由于新建数据库没有选择默认字符集导致的,只要选择utf-8即可.
- Linux内核网络栈源代码分析
http://blog.csdn.net/column/details/linux-kernel-net.html
- 防止ddos攻击
1.防止ddos攻击 :接入层过滤器,去判断非法请求ip地主(如果请求过多,自己加入黑名单),上传至防火墙黑名单,不再录入 2.防止xss/css攻击 :在接入层,有第三方jra包工具类,过滤所有请求
- memcache 开机启动
一. 通常:启动Memcache的服务器端的命令为:# /usr/local/bin/memcached -d -m 10 -u root -l 127.0.0.1 -p 11211 -c 256 - ...
- Linux常用的几个vi小命令
输入跳转命令: 命令行前 Ctrl+A 命令行后 Ctrl+E VI命令中: 当前行 行首 "0" 当前行 行尾 "Shift+4" 当前文档首行首字符:& ...
- 2017.2.20 activiti实战--第二章--搭建Activiti开发环境及简单示例(二)简单示例
学习资料:<Activiti实战> 第一章 搭建Activiti开发环境及简单示例 2.5 简单流程图及其执行过程 (1)leave.bpmn 后缀名必须是bpmn.安装了activiti ...
- 2017.2.16 开涛shiro教程-第十七章-OAuth2集成(一)服务器端
原博客地址:http://jinnianshilongnian.iteye.com/blog/2018398 根据下载的pdf学习. 开涛shiro教程-第十七章-OAuth2集成 1.OAuth2介 ...
- Ajax学习(一)——与Ajax的初次相识
AJAX是"Asynchronous Javascript And XML"的缩写,从字面上解释是"异步JavaScript和XML"的简称. 它不是一 ...
- poj 3307 Smart Sister 打表解因子生成数问题
题意: 给i,求由仅以2,3,5,7为因子的数中第i个是多少. 分析: 打表. 代码: //poj 3307 //sep9 #include <iostream> using namesp ...
- 关于郭天祥51开发板无法烧敲代码问题的解决(Prolific USB-to-Serial Comm Port)
1. 事件背景: 因为使用了win8系统,之前购买的郭天祥C51开发板在通过一个两头都是usb口的下载线下载程序时出现了问题:下载工具stc isp无法连接到开发板上的串口,所以无法下载程序到c51开 ...