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

简介: 在本测试代码中,我们定义了一个 POJO 类,名字为 MessageData,你可以访问下面的链接找到有关这个类的定义。https://github.com/cwiki-us-demo/serialize-deserialize-demo-java/blob/master/src/main/ja...

在本测试代码中,我们定义了一个 POJO 类,名字为 MessageData,你可以访问下面的链接找到有关这个类的定义。

https://github.com/cwiki-us-demo/serialize-deserialize-demo-java/blob/master/src/main/java/com/insight/demo/serialize/model/msgpack/MessageData.java

POJO 的序列化和反序列化

你仅仅需要对 MessagePackFactory 进行实例化,然后传递参数到 com.fasterxml.jackson.databind.ObjectMapper 的构造方法。

然后你就可以用与 jackson-databind 相同的方法使用 MessagePack 格式化数据。

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

/**
 * SerializationPOJO
 */
@Test
public void testMessagePackSerializationPOJO() {
 
    byte[] bytes = new byte[0];
    String uuid = UUID.randomUUID().toString();
 
    // Instantiate ObjectMapper for MessagePack
    ObjectMapper objectMapper = new ObjectMapper(new MessagePackFactory());
 
 
    MessageData pojo = new MessageData();
    pojo.setUuid(uuid);
    pojo.setName("CWIKI.US");
 
 
    try {
        // Serialize a Java object to byte array
        bytes = objectMapper.writeValueAsBytes(pojo);
        logger.debug("Length of Bytes: [{}]", bytes.length);
 
        // Deserialize the byte array to a Java object
        MessageData deserialized = objectMapper.readValue(bytes, MessageData.class);
        logger.debug("Deserialized Name: [{}]", deserialized.name);
 
        assertEquals("CWIKI.US", deserialized.name);
 
    } catch (JsonProcessingException ex) {
        logger.error("Serialize Error", ex);
    } catch (IOException e) {
        e.printStackTrace();
    }
 
}

https://www.cwiki.us/display/Serialization/MessagePack+Jackson+Dataformat

目录
相关文章
|
21天前
|
存储 安全 Java
🌟Java零基础-反序列化:从入门到精通
【10月更文挑战第21天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
61 5
|
22天前
|
存储 缓存 安全
🌟Java零基础:深入解析Java序列化机制
【10月更文挑战第20天】本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!
23 3
|
25天前
|
存储 安全 Java
Java编程中的对象序列化与反序列化
【10月更文挑战第22天】在Java的世界里,对象序列化和反序列化是数据持久化和网络传输的关键技术。本文将带你了解如何在Java中实现对象的序列化与反序列化,并探讨其背后的原理。通过实际代码示例,我们将一步步展示如何将复杂数据结构转换为字节流,以及如何将这些字节流还原为Java对象。文章还将讨论在使用序列化时应注意的安全性问题,以确保你的应用程序既高效又安全。
|
25天前
|
存储 缓存 NoSQL
一篇搞懂!Java对象序列化与反序列化的底层逻辑
本文介绍了Java中的序列化与反序列化,包括基本概念、应用场景、实现方式及注意事项。序列化是将对象转换为字节流,便于存储和传输;反序列化则是将字节流还原为对象。文中详细讲解了实现序列化的步骤,以及常见的反序列化失败原因和最佳实践。通过实例和代码示例,帮助读者更好地理解和应用这一重要技术。
24 0
|
1月前
|
安全 网络协议 Java
Java反序列化漏洞与URLDNS利用链分析
Java反序列化漏洞与URLDNS利用链分析
51 3
|
存储 缓存 安全
Java安全之反序列化漏洞分析
Java安全之反序列化漏洞分析
434 0
Java安全之反序列化漏洞分析
|
存储 安全 网络协议
java反序列化漏洞入门分析
参考文献: https://nickbloor.co.uk/2017/08/13/attacking-java-deserialization/amp/https://www.
2361 0
|
5天前
|
Java 开发者
Java多线程编程中的常见误区与最佳实践####
本文深入剖析了Java多线程编程中开发者常遇到的几个典型误区,如对`start()`与`run()`方法的混淆使用、忽视线程安全问题、错误处理未同步的共享变量等,并针对这些问题提出了具体的解决方案和最佳实践。通过实例代码对比,直观展示了正确与错误的实现方式,旨在帮助读者构建更加健壮、高效的多线程应用程序。 ####
|
4天前
|
安全 Java 开发者
Java 多线程并发控制:深入理解与实战应用
《Java多线程并发控制:深入理解与实战应用》一书详细解析了Java多线程编程的核心概念、并发控制技术及其实战技巧,适合Java开发者深入学习和实践参考。
|
4天前
|
Java 开发者
Java多线程编程的艺术与实践####
本文深入探讨了Java多线程编程的核心概念、应用场景及实践技巧。不同于传统的技术文档,本文以实战为导向,通过生动的实例和详尽的代码解析,引领读者领略多线程编程的魅力,掌握其在提升应用性能、优化资源利用方面的关键作用。无论你是Java初学者还是有一定经验的开发者,本文都将为你打开多线程编程的新视角。 ####
下一篇
无影云桌面