MessagePack Java 0.6.X 多种类型变量的序列化和反序列化(serializati
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,类 Packer/Unpacker 允许序列化和反序列化多种类型的变量,如后续程序所示。这个类启用序列化和反序列化多种类型的变量和序列化主要类型变量以及包装类,String 对象,byte[] 对象,
千家信息网最后更新 2026年11月02日MessagePack Java 0.6.X 多种类型变量的序列化和反序列化(serializati
类 Packer/Unpacker 允许序列化和反序列化多种类型的变量,如后续程序所示。这个类启用序列化和反序列化多种类型的变量和序列化主要类型变量以及包装类,String 对象,byte[] 对象, ByteBuffer 对象等的方法相似。
如上面提示的,你可以序列化和反序列化你自己的对象,前提是你自己的对象需要使用 @Message 注解。
package com.insight.demo.msgpack;import org.junit.Test;import org.msgpack.MessagePack;import org.msgpack.packer.Packer;import org.msgpack.unpacker.Unpacker;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.io.ByteArrayInputStream;import java.io.ByteArrayOutputStream;import java.math.BigInteger;import java.nio.ByteBuffer;/** * MessagePack6Types * * @author yhu */public class MessagePack6Types { final Logger logger = LoggerFactory.getLogger(MessagePack6Types.class); /** * Test MessagePack6Types */ @Test public void testMessagePack6Types() { logger.debug("testMessagePack6Types for Types"); MessagePack msgpack = new MessagePack(); try { // // Serialization // ByteArrayOutputStream out = new ByteArrayOutputStream(); Packer packer = msgpack.createPacker(out); // Serialize values of primitive types packer.write(true); // boolean value packer.write(10); // int value packer.write(10.5); // double value // Serialize objects of primitive wrapper types packer.write(Boolean.TRUE); packer.write(new Integer(10)); packer.write(new Double(10.5)); // Serialize various types of arrays packer.write(new int[]{1, 2, 3, 4}); packer.write(new Double[]{10.5, 20.5}); packer.write(new String[]{"msg", "pack", "for", "java"}); packer.write(new byte[]{0x30, 0x31, 0x32}); // byte array // Serialize various types of other reference values packer.write("MessagePack"); // String object packer.write(ByteBuffer.wrap(new byte[]{0x30, 0x31, 0x32})); // ByteBuffer object packer.write(BigInteger.ONE); // BigInteger object // // Deserialization // byte[] bytes = out.toByteArray(); ByteArrayInputStream in = new ByteArrayInputStream(bytes); Unpacker unpacker = msgpack.createUnpacker(in); // to primitive values boolean b = unpacker.readBoolean(); // boolean value int i = unpacker.readInt(); // int value double d = unpacker.readDouble(); // double value // to primitive wrapper value Boolean wb = unpacker.read(Boolean.class); Integer wi = unpacker.read(Integer.class); Double wd = unpacker.read(Double.class); // to arrays int[] ia = unpacker.read(int[].class); Double[] da = unpacker.read(Double[].class); String[] sa = unpacker.read(String[].class); byte[] ba = unpacker.read(byte[].class); // to String object, ByteBuffer object, BigInteger object, List object and Map object String ws = unpacker.read(String.class); ByteBuffer buf = unpacker.read(ByteBuffer.class); BigInteger bi = unpacker.read(BigInteger.class); } catch (Exception ex) { logger.error("MessagePack Serialization And Deserialization error", ex); } }}方法 Packer#write() 允许序列化多种类型的数据。
类 Unpacker 针对反序列化二进制数据为主要变量,提供了一个反序列化方法。例如,你希望将二进制数据反序列化为 boolean (或者 int) 数据类型,你可以使用 Unpacker 中的 readBoolean (或者 readInt) 方法。
Unpacker 同时也为参考变量提供了一个读取的方法。这个方法允许为一个参考变量从二进制数据中进行反序列化。参考变量的定义为你将类型指定为一个参数。例如,你希望反序列化二进制数据到 String (或者 byte[]) 对象,你必须在调用 read(String.class) (或者 read(byte[].class)) 方法的时候定义描述。
https://www.cwiki.us/display/Serialization/QuickStart+For+MessagePack+Java+0.6.X
序列
变量
方法
类型
对象
数据
多种
二进制
参考
相似
前提
参数
同时
时候
注解
程序
进制
从二
包装
提示
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
科技互联网
互联网加科技
湖北九亚互联网络科技有限公司
厦门中拓互联网络科技有限公司
互联网科技深圳
互联网科技公司税收优惠
互联网巨头反垄断金融科技
互联网 科技公司
互联网医疗科技
平安科技 互联网
互联网科技logo
成都仁贤领冠互联网科技有限公司
互联网科技项目计划书材料类
荆州市昕露互联网络科技有限公司
千方科技属于互联网企业吗
速维有品互联网信息科技(苏州)有限公司
上海万顺科技互联网有限公司招聘
互联网科技职业技能培训学校
科技互联网公司两年变化
互联网科技创新方面的资料
港股互联网科技股
互联网 科技公司
互联网高科技企业
滨湖区互联网智能科技产品供应
湖南洣水互联网科技有限公司扣款
上海电发互联网科技有限公司
开启互联网科技时代小说
厦门比较好的科技互联网公司
烟台灵鸽互联网科技有限公司
启辰互联网科技