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

简介: 在本测试代码中,我们定义了一个 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

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

我们需要先定义一个对象的 List 列表。

/**
 * SerializationList
 */
@Test
public void testMessagePackSerializationList() {

    byte[] bytes = new byte[0];
    String uuid = UUID.randomUUID().toString();

    // Instantiate ObjectMapper for MessagePack
    ObjectMapper objectMapper = new ObjectMapper(new MessagePackFactory());

    List<MessageData> objList = MockDataUtils.getMessageDataList(9);

    try {
        // Serialize a Java object to byte array
        bytes = objectMapper.writeValueAsBytes(objList);
        logger.debug("Length of Bytes: [{}]", bytes.length);

        // Deserialize the byte array to a Java object
        // Deserialize the byte array to a List
        List<MessageData> deserialized = objectMapper.readValue(bytes, new TypeReference<List<MessageData>>() {
        });
        logger.debug("Deserialized List Count: [{}]", deserialized.size());
        logger.debug("List index 0: [{}]", deserialized.get(0).name);

    } catch (JsonProcessingException ex) {
        logger.error("Serialize Error", ex);
    } catch (IOException e) {
        e.printStackTrace();
    }

}

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

目录
相关文章
|
6天前
|
存储 XML JSON
用示例说明序列化和反序列化
用示例说明序列化和反序列化
|
15天前
|
JSON fastjson Java
niubility!即使JavaBean没有默认无参构造器,fastjson也可以反序列化。- - - - 阿里Fastjson反序列化源码分析
本文详细分析了 Fastjson 反序列化对象的源码(版本 fastjson-1.2.60),揭示了即使 JavaBean 沲有默认无参构造器,Fastjson 仍能正常反序列化的技术内幕。文章通过案例展示了 Fastjson 在不同构造器情况下的行为,并深入探讨了 `ParserConfig#getDeserializer` 方法的核心逻辑。此外,还介绍了 ASM 字节码技术的应用及其在反序列化过程中的角色。
42 10
|
15天前
|
存储 Java 开发者
Java编程中的对象序列化与反序列化
【9月更文挑战第20天】在本文中,我们将探索Java编程中的一个核心概念——对象序列化与反序列化。通过简单易懂的语言和直观的代码示例,你将学会如何将对象状态保存为字节流,以及如何从字节流恢复对象状态。这不仅有助于理解Java中的I/O机制,还能提升你的数据持久化能力。准备好让你的Java技能更上一层楼了吗?让我们开始吧!
|
5天前
|
JSON 安全 编译器
扩展类实例的序列化和反序列化
扩展类实例的序列化和反序列化
13 0
|
11天前
|
XML Dubbo Java
分布式-序列化,反序列化
分布式-序列化,反序列化
|
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 中下载到本地后进行编译测试。
1012 0
|
7天前
|
安全 Java 调度
Java编程时多线程操作单核服务器可以不加锁吗?
Java编程时多线程操作单核服务器可以不加锁吗?
21 2
|
11天前
|
存储 缓存 Java
java线程内存模型底层实现原理
java线程内存模型底层实现原理
java线程内存模型底层实现原理
|
15天前
|
缓存 Java 应用服务中间件
Java虚拟线程探究与性能解析
本文主要介绍了阿里云在Java-虚拟-线程任务中的新进展和技术细节。
|
13天前
|
Java 开发者
Java中的多线程基础与应用
【9月更文挑战第22天】在Java的世界中,多线程是一块基石,它支撑着现代并发编程的大厦。本文将深入浅出地介绍Java中多线程的基本概念、创建方法以及常见的应用场景,帮助读者理解并掌握这一核心技术。
下一篇
无影云桌面