当你希望在 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 的序列化相关推荐

  1. JAVA 通过value获取Map中key的三种方法

    JAVA 通过value获取Map中key的三种方法 简介 方法描述 循环法 Stream方法 Apache Commons Collections的BidiMap 总结 简介 我们都知道Map是存放 ...

  2. 判断 Map 中是否包含指定的 key 和 value

    重写name的hashcode()和equals()方法 package com.imooc.collection;import java.util.HashSet; import java.util ...

  3. java jackson jobject_在Scalatra中响应JSON格式的诸多问题

    先看一个最简单的例子,假如我有这样一个entitycase class Entity(var value: String)复制代码 在Servlet的一个请求下,响应一个entity的列表get(&q ...

  4. Java 集合List及Map中forEach()方法

    我们先看一个forEach()方法遍历List集合的例子: //使用com.google.guava包创建集合List<String> list =Lists.newArrayList(& ...

  5. java比较时间戳大小_JAVA中两个String类型的时间戳怎么样比较大小?

    1.从数据库里面获得的时间戳是String类型的,要与当前时间比较,判断登陆是否过期 生成一long类型的当前时间,把String类型强制转换成long类型报错,代码如下: long currentT ...

  6. java获取字符串长度_java中定义字符串String s=”pzhu”,下面操作可以取得字符串长度的是( )。...

    [单选] 施工现场宿舍.办公室等临时用房建筑构件的燃烧性能等级应为():当采用金属夹芯板材时,其芯材的燃烧性能等级应为(). [填空题] <敦煌曲谱>又名(),是933年用燕乐半字谱抄写的 ...

  7. java将map根据key分组_Java将List中的实体类按照某个字段进行分组并存放至Map中操作代码...

    本篇文章小编给大家分享一下Java将List中的实体类按照某个字段进行分组并存放至Map中操作代码,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 1. ...

  8. [转] java的 Collection 和 Map 详解

    原文转自: http://www.diybl.com/course/3_program/java/javajs/2007917/71621.html 前言        线性表,链表,哈希表是常用的数 ...

  9. java集合框架07——Map架构与源代码分析

    前几节我们对Collection以及Collection中的List部分进行了分析,Collection中还有个Set,因为Set是基于Map实现的,所以这里我们先分析Map,后面章节再继续学习Set ...

最新文章

  1. JDBC与数据库连接工具对比分析
  2. R语言广义线性模型Logistic回归模型亚组分析及森林图绘制
  3. 对表单控制是否提交 需要在方法名前面加上 return
  4. Docker问题记录
  5. 模板变量,过滤器和静态文件引用
  6. oracle 静默安装出错,关于redhat6.2静默安装oracle11g出现的问题 大神救命
  7. android 支付宝月账单 统计图_@三明人 支付宝年度账单来了!今天的你晒账单了吗?...
  8. 备份redis服务并ftp上传(shell)
  9. 一文了解 caffe 框架 | CSDN 博文精选
  10. 判断是否为数组的 JavaScript 方法总结
  11. android其架构图,Android系统架构图,带你直观了解Android基本架构
  12. 【虚幻4】浅析UE4中的C++
  13. 西威变频器avo下载调试资料_小白妙招 | G120/G120C 变频器模拟量断线速度保持
  14. 互联网下一个风口 国务院印发《促进大数据发展行动纲要》
  15. 【2022】安装神通数据库及DataGrip连接
  16. mt管理器图片在哪个文件夹_MT管理器构造(新手小白教程)-小白文件管理器
  17. 土地购买(bzoj 1597)
  18. 生来只为丈量天空,开普勒的传奇一生
  19. nodejs 加密压缩文件,解密解压文件
  20. 字符串转成正则表达式

热门文章

  1. Shiro 登录、退出、校验是否登录涉及到的Session和Cookie
  2. 微信头像单张图片上传
  3. 感动要哭 撸了一个半小时的重载预算符高精
  4. 3D打印材料PLA,ABS对比
  5. 找到你的位置(JS在页面中的位置)最常用的方式是在页面中head部分放置script元素,浏览器解析head部分就会执行这个代码,然后才解析页面的其余部分...
  6. 信息安全系统设计基础第三周学习总结—20135227黄晓妍
  7. CISSP的成长之路(九):复习信息安全管理(3)
  8. JavaScript 面向对象的程序设计1
  9. safari 调试iPhone web页面
  10. node --- 使用koa-router,让后端模块化