本测试方法,可以在 https://github.com/cwiki-us-demo/serialize-deserialize-demo-java/blob/master/src/test/java/com/insight/demo/serialize/MessagePackSerializer.java 中找到。

我们需要定义测试需要的 MAP,定义 Map 的方法你可以在下面的测试程序中找到。

/**
* SerializationMap
*/
@Test
public void testMessagePackSerializationMap() { byte[] bytes = new byte[0];
String uuid_a = UUID.randomUUID().toString();
String uuid_b = UUID.randomUUID().toString(); // Instantiate ObjectMapper for MessagePack
ObjectMapper objectMapper = new ObjectMapper(new MessagePackFactory()); Map<String, MessageData> map = new HashMap<>();
MessageData messageData = new MessageData(); // Element A in MAP
messageData.setUuid(UUID.randomUUID().toString());
messageData.setName("CWIKI.US - A");
map.put(uuid_a, messageData); // Element B in MAP
messageData = new MessageData();
messageData.setUuid(UUID.randomUUID().toString());
messageData.setName("CWIKI.US - B");
map.put(uuid_b, messageData); try {
// Serialize a Java object to byte array
bytes = objectMapper.writeValueAsBytes(map);
logger.debug("Length of Bytes: [{}]", bytes.length); // Deserialize the byte array to a MAP
Map<String, MessageData> deserialized = objectMapper.readValue(bytes, new TypeReference<Map<String, 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

MessagePack Java Jackson Dataformat - Map 的序列化和反序列化的更多相关文章

  1. MessagePack Java Jackson Dataformat - POJO 的序列化和反序列化

    在本测试代码中,我们定义了一个 POJO 类,名字为 MessageData,你可以访问下面的链接找到有关这个类的定义. https://github.com/cwiki-us-demo/serial ...

  2. MessagePack Java Jackson Dataformat 在 Map 中不使用 String 为 Key 的序列化

    当你希望在 Map 中不使用 String 为 Key,那么你需要使用 MessagePackKeySerializer 来为 key 进行序列化. 本测试方法,可以在 https://github. ...

  3. MessagePack Java Jackson Dataformat - 列表(List)的序列化和反序列化

    在本测试代码中,我们定义了一个 POJO 类,名字为 MessageData,你可以访问下面的链接找到有关这个类的定义. https://github.com/cwiki-us-demo/serial ...

  4. MessagePack Java Jackson Dataformat 不使用 str8 数据类型的序列化

    老的 msgpack-java(例如 0.6.7)并不支持 MessagePack str8 数据类型. 当你的希望的你的应用程序需要支持老的版本的话,你需要禁用这个数据类型,例如使用下面的语句: M ...

  5. MessagePack Java Jackson Dataformat - 安装

    中文标题[MessagePack 的 Jackson 数据格式] 本页面中的所有示例程序,请到代码库 https://github.com/cwiki-us-demo/serialize-deseri ...

  6. MessagePack Java Jackson 在不关闭输出流(output stream)的情况下序列化多变量

    com.fasterxml.jackson.databind.ObjectMapper 在默认的情况下在写出输入后将会关闭输出流(output stream). 如果你希望序列化多值变量在同一个输出流 ...

  7. MessagePack Java Jackson 序列化和反序列化 POJO 为 MessagePack 的数组类型用来与 msgpack-java:0.6 保持兼容性

    在 msgpack-java 0.6 或者早期的版本中,POJO 在 MessagePack 中被序列化和反序列化为数组变量. 变量的顺序是基于 Java 类中变量的内部顺序了,这种本来是一种原生的序 ...

  8. MessagePack Java Jackson 在不关闭输入流(input stream)的情况下反序列化多变量

    com.fasterxml.jackson.databind.ObjectMapper 在读取输入流变量的时候默认的将会关闭输入流. 如果你不希望关闭输入流,你可以设置 JsonParser.Feat ...

  9. Jackson对泛型的序列化和反序列化方法汇总

    说明:Jackson对于简单泛型是可以正常操作的,但是如果对于太过于复杂的泛型类有时会不成功.目前还在找着更合适的Json库.不过这一点在dotnet原生方案JavaScriptSerializer可 ...

随机推荐

  1. Annotation Type ManyToMany->>>>>Oracle

    Example 1: // In Customer class: @ManyToMany @JoinTable(name="CUST_PHONES") public Set< ...

  2. windows server 2008 R2 Enterprise 防火墙开启允许远程桌面登录

    解决方法: 开始------ > 运行 ----- > gpedit.msc 打开“本地组策略编辑器”,按如下设置:计算机配置----->管理模板----->网络-----&g ...

  3. EF 查询扩展

    using Microsoft.EntityFrameworkCore; using System; using System.Collections.Generic; using System.Da ...

  4. SQLite数据库_c/s架构的心得

    1.使用是Navicat Premium软件, Microsoft Windows版本. 2.选择SQLite并新建数据库: 3.将建好的SQLite数据库,放到新建的项目的debug文件下中, 并在 ...

  5. 虚拟机centos7执行ip addr命令看不到ip地址

    转:https://blog.csdn.net/weixin_43343006/article/details/100094624 进入ect/sysconfig/network-scripts目录在 ...

  6. json字符串对象

    1.将字符串转为json对象:JSON.parse(); 2.json对象转字符串:JSON.stringify(); <!DOCTYPE html> <html> <h ...

  7. java面试4

    1.两个对象a和b,请问a==b和a.equals(b)有什么区别? a==b; 比较对象地址 a.equals(b);如果a对象没有重写equals方法,效果和==相同,如果重写了就按照重写的规则比 ...

  8. Mycat1.6启动报NumberFormatException解决方案(server内存太大)

    https://blog.csdn.net/lijieshare/article/details/84826280 2019-09-02 18:28:27,829 [ERROR][main] 2019 ...

  9. 日常开发用Windows 好还是 Ubuntu好?

    最近打算给电脑重新装系统,纠结了很久,不知道应该是换Windows还是Ubuntu,今天通过我自身的体验,来为大家分析一下,日常开发环境到底是用Windows和Ubuntu. [系统介绍] Windo ...

  10. 第十五章、python中的进程操作-开启多进程

    目录 第十五章.python中的进程操作-开启多进程 一.multprocess模块 二.multprocess.process模块 三.Process()对象方法介绍 四.Process()对象属性 ...