MessagePack Java Jackson Dataformat 在 Map 中不使用 String 为 Key 的序列化
当你希望在 Map 中不使用 String 为 Key,那么你需要使用 MessagePackKeySerializer
来为 key 进行序列化。
本测试方法,可以在 https://github.com/cwiki-us-demo/serialize-deserialize-demo-java/blob/master/src/test/java/com/insight/demo/serialize/MessagePackSerializer.java 中找到。
/*** testMessagePackSerializationMapKey*/ @Test @JsonSerialize(keyUsing = MessagePackKeySerializer.class) public void testMessagePackSerializationMapKey() {logger.debug("testMessagePackSerializationNotCloseInputStream");byte[] bytes = new byte[0];Integer uuid_a = 101;Integer uuid_b = 102;// Instantiate ObjectMapper for MessagePackObjectMapper objectMapper = new ObjectMapper(new MessagePackFactory());Map<Integer, MessageData> map = new HashMap<>();MessageData messageData = new MessageData();// Element A in MAPmessageData.setUuid(UUID.randomUUID().toString());messageData.setName("CWIKI.US - A");map.put(uuid_a, messageData);// Element B in MAPmessageData = new MessageData();messageData.setUuid(UUID.randomUUID().toString());messageData.setName("CWIKI.US - B");map.put(uuid_b, messageData);try {// Serialize a Java object to byte arraybytes = objectMapper.writeValueAsBytes(map);logger.debug("Length of Bytes: [{}]", bytes.length);// Deserialize the byte array to a MAPMap<String, MessageData> deserialized = objectMapper.readValue(bytes, new TypeReference<Map<Integer, MessageData>>() {});logger.debug("Deserialized MAP Count: [{}]", deserialized.size());logger.debug("MAP index 0: [{}]", deserialized.get(uuid_a).getName());assertEquals("CWIKI.US - A", deserialized.get(uuid_a).getName());} catch (JsonProcessingException ex) {logger.error("Serialize Error", ex);} catch (IOException e) {e.printStackTrace();} }
https://www.cwiki.us/display/Serialization/MessagePack+Jackson+Dataformat
转载于:https://www.cnblogs.com/huyuchengus/p/11330476.html
MessagePack Java Jackson Dataformat 在 Map 中不使用 String 为 Key 的序列化相关推荐
- JAVA 通过value获取Map中key的三种方法
JAVA 通过value获取Map中key的三种方法 简介 方法描述 循环法 Stream方法 Apache Commons Collections的BidiMap 总结 简介 我们都知道Map是存放 ...
- 判断 Map 中是否包含指定的 key 和 value
重写name的hashcode()和equals()方法 package com.imooc.collection;import java.util.HashSet; import java.util ...
- java jackson jobject_在Scalatra中响应JSON格式的诸多问题
先看一个最简单的例子,假如我有这样一个entitycase class Entity(var value: String)复制代码 在Servlet的一个请求下,响应一个entity的列表get(&q ...
- Java 集合List及Map中forEach()方法
我们先看一个forEach()方法遍历List集合的例子: //使用com.google.guava包创建集合List<String> list =Lists.newArrayList(& ...
- java比较时间戳大小_JAVA中两个String类型的时间戳怎么样比较大小?
1.从数据库里面获得的时间戳是String类型的,要与当前时间比较,判断登陆是否过期 生成一long类型的当前时间,把String类型强制转换成long类型报错,代码如下: long currentT ...
- java获取字符串长度_java中定义字符串String s=”pzhu”,下面操作可以取得字符串长度的是( )。...
[单选] 施工现场宿舍.办公室等临时用房建筑构件的燃烧性能等级应为():当采用金属夹芯板材时,其芯材的燃烧性能等级应为(). [填空题] <敦煌曲谱>又名(),是933年用燕乐半字谱抄写的 ...
- java将map根据key分组_Java将List中的实体类按照某个字段进行分组并存放至Map中操作代码...
本篇文章小编给大家分享一下Java将List中的实体类按照某个字段进行分组并存放至Map中操作代码,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 1. ...
- [转] java的 Collection 和 Map 详解
原文转自: http://www.diybl.com/course/3_program/java/javajs/2007917/71621.html 前言 线性表,链表,哈希表是常用的数 ...
- java集合框架07——Map架构与源代码分析
前几节我们对Collection以及Collection中的List部分进行了分析,Collection中还有个Set,因为Set是基于Map实现的,所以这里我们先分析Map,后面章节再继续学习Set ...
最新文章
- JDBC与数据库连接工具对比分析
- R语言广义线性模型Logistic回归模型亚组分析及森林图绘制
- 对表单控制是否提交 需要在方法名前面加上 return
- Docker问题记录
- 模板变量,过滤器和静态文件引用
- oracle 静默安装出错,关于redhat6.2静默安装oracle11g出现的问题 大神救命
- android 支付宝月账单 统计图_@三明人 支付宝年度账单来了!今天的你晒账单了吗?...
- 备份redis服务并ftp上传(shell)
- 一文了解 caffe 框架 | CSDN 博文精选
- 判断是否为数组的 JavaScript 方法总结
- android其架构图,Android系统架构图,带你直观了解Android基本架构
- 【虚幻4】浅析UE4中的C++
- 西威变频器avo下载调试资料_小白妙招 | G120/G120C 变频器模拟量断线速度保持
- 互联网下一个风口 国务院印发《促进大数据发展行动纲要》
- 【2022】安装神通数据库及DataGrip连接
- mt管理器图片在哪个文件夹_MT管理器构造(新手小白教程)-小白文件管理器
- 土地购买(bzoj 1597)
- 生来只为丈量天空,开普勒的传奇一生
- nodejs 加密压缩文件,解密解压文件
- 字符串转成正则表达式
热门文章
- Shiro 登录、退出、校验是否登录涉及到的Session和Cookie
- 微信头像单张图片上传
- 感动要哭 撸了一个半小时的重载预算符高精
- 3D打印材料PLA,ABS对比
- 找到你的位置(JS在页面中的位置)最常用的方式是在页面中head部分放置script元素,浏览器解析head部分就会执行这个代码,然后才解析页面的其余部分...
- 信息安全系统设计基础第三周学习总结—20135227黄晓妍
- CISSP的成长之路(九):复习信息安全管理(3)
- JavaScript 面向对象的程序设计1
- safari 调试iPhone web页面
- node --- 使用koa-router,让后端模块化