MessagePack Java Jackson Dataformat - Map 的序列化和反序列化

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

本测试方法,可以在 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

目录
相关文章
|
1月前
|
存储 C#
C#中的序列化和反序列化
C#中的序列化和反序列化
12 0
|
1月前
|
存储 Java 数据库
|
10天前
|
存储 Java
Java输入输出:解释一下序列化和反序列化。
Java中的序列化和反序列化是将对象转换为字节流和反之的过程。ObjectOutputStream用于序列化,ObjectInputStream则用于反序列化。示例展示了如何创建一个实现Serializable接口的Person类,并将其序列化到文件,然后从文件反序列化回Person对象。
17 5
|
11天前
|
存储 算法 安全
Java Map:键值对的奇妙之旅
Java Map:键值对的奇妙之旅
41 0
Java Map:键值对的奇妙之旅
|
1月前
|
存储 C#
C#中的序列化和反序列化案例
C#中的序列化和反序列化案例
11 0
|
1月前
|
JSON Java Maven
使用Jackson进行 JSON 序列化和反序列化
使用Jackson进行 JSON 序列化和反序列化
24 0
|
1月前
|
存储 安全 Java
【Java】集合(三)Map
【Java】集合(三)Map
19 0
|
1月前
|
存储 JSON 网络协议
【计算机网络】序列化,反序列化和初识协议
【计算机网络】序列化,反序列化和初识协议
|
Java
MessagePack Java 0.6.X 使用一个消息打包(message-packable)类
使用注解 @Message 来让你可以序列化你自己类中对象的 public 字段。 本代码可以在 https://github.com/cwiki-us-demo/messagepack-6-demo-java/blob/master/src/test/java/com/insight/demo/msgpack/MessagePack6Object.java 中下载到本地后进行编译测试。
980 0
|
4天前
|
安全 Java
深入理解 Java 多线程和并发工具类
【4月更文挑战第19天】本文探讨了Java多线程和并发工具类在实现高性能应用程序中的关键作用。通过继承`Thread`或实现`Runnable`创建线程,利用`Executors`管理线程池,以及使用`Semaphore`、`CountDownLatch`和`CyclicBarrier`进行线程同步。保证线程安全、实现线程协作和性能调优(如设置线程池大小、避免不必要同步)是重要环节。理解并恰当运用这些工具能提升程序效率和可靠性。

热门文章

最新文章