msgpack简介
MessagePack是一个基于二进制高效的对象序列化Library用于跨语言通信。
它可以像JSON那样,在许多种语言之间交换结构对象;但是它比JSON更快速也更轻巧。
支持Python、Ruby、Java、C/C++、Javascript等众多语言。
比Google Protocol Buffers还要快4倍
1. 下载 msgpack-0.5.1-devel.jar
建议从Maven仓库下 可能依赖的 jar
slf4j-api-1.4.3.jar
slf4j-log4j12-1.4.3.jar
log4j-1.2.13.jar
javassist-3.12.1.GA.jar
2. 对JavaBean操作
3. 对Map,List操作
MessagePack是一个基于二进制高效的对象序列化Library用于跨语言通信。
它可以像JSON那样,在许多种语言之间交换结构对象;但是它比JSON更快速也更轻巧。
支持Python、Ruby、Java、C/C++、Javascript等众多语言。
比Google Protocol Buffers还要快4倍
1. 下载 msgpack-0.5.1-devel.jar
建议从Maven仓库下 可能依赖的 jar
slf4j-api-1.4.3.jar
slf4j-log4j12-1.4.3.jar
log4j-1.2.13.jar
javassist-3.12.1.GA.jar
2. 对JavaBean操作
- package com.mytest;
- /**
- *
- * 功能描述:
- *
- * @author lw
- * @created 2011-6-9 下午01:55:29
- * @version 1.0.0
- * @date 2011-6-9 下午01:55:29
- */
- import java.io.Serializable;
- import org.msgpack.annotation.MessagePackMessage;
- @MessagePackMessage
- // Annotation
- public class BeanClass implements Serializable{
- /**
- *
- */
- private static final long serialVersionUID = 1L;
- // public fields are serialized.
- public String str;
- public double num;
- public String info;
- }
- package com.mytest;
- /**
- *
- * 功能描述:
- *
- * @author lw
- * @created 2011-6-9 下午01:55:29
- * @version 1.0.0
- * @date 2011-6-9 下午01:55:29
- */
- import java.util.HashMap;
- import org.msgpack.MessagePack;
- public class BeanMain {
- public static void main(String[] args) {
- BeanClass src = new BeanClass();
- src.str = "msgpack";
- src.num = 0.5;
- src.info = "This is msgpack";
- HashMap<String, String> map = new HashMap<String, String>();
- map.put("src", "src----");
- // Serialize
- byte[] raw = MessagePack.pack(src);
- // Deserialize
- BeanClass dst = MessagePack.unpack(raw, BeanClass.class);
- System.out.println(dst.str + ":" + dst.num);
- }
- }
3. 对Map,List操作
- package com.mytest;
- import static org.msgpack.Templates.TAny;
- import static org.msgpack.Templates.TString;
- import static org.msgpack.Templates.tList;
- import static org.msgpack.Templates.tMap;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.List;
- import java.util.Map;
- import org.msgpack.MessagePack;
- import org.msgpack.Template;
- import org.msgpack.object.ArrayType;
- import org.msgpack.object.BooleanType;
- import org.msgpack.object.FloatType;
- import org.msgpack.object.IntegerType;
- import org.msgpack.object.RawType;
- /**
- *
- * 功能描述:
- *
- * @author lw
- * @created 2011-6-13 上午09:33:11
- * @version 1.0.0
- * @date 2011-6-13 上午09:33:11
- */
- public class RawTypeUtil {
- /**
- *
- * Object
- *
- * @param arg0
- * @return
- */
- public static Object unpackToObject(byte[] arg0) {
- return unpackToObject(arg0, TAny);
- }
- /**
- *
- * Object
- *
- * @param arg0
- * @param arg1
- * @return
- */
- public static Object unpackToObject(byte[] arg0, Template arg1) {
- Object obj = (Object) MessagePack.unpack(arg0, arg1);
- return rawObjToObj(obj);
- }
- /**
- *
- * Map
- *
- * @param arg0
- * @return
- */
- public static Map<String, Object> unpackToMap(byte[] arg0) {
- return unpackToMap(arg0, tMap(TString, TAny));
- }
- /**
- *
- * Map
- *
- * @param arg0
- * @param arg1
- * @return
- */
- public static Map<String, Object> unpackToMap(byte[] arg0, Template arg1) {
- @SuppressWarnings("unchecked")
- Map<String, Object> dst = (Map<String, Object>) MessagePack.unpack(arg0, arg1);
- return rawtypeMapConvert(dst);
- }
- /**
- *
- * List
- *
- * @param arg0
- * @return
- */
- public static List<Map<String, Object>> unpackToList(byte[] arg0) {
- return unpackToList(arg0, tList(tMap(TString, TAny)));
- }
- /**
- *
- * List
- *
- * @param arg0
- * @param arg1
- * @return
- */
- public static List<Map<String, Object>> unpackToList(byte[] arg0, Template arg1) {
- @SuppressWarnings("unchecked")
- List<Map<String, Object>> dst = (List<Map<String, Object>>) MessagePack.unpack(arg0, arg1);
- return rawtypeListConvert(dst);
- }
- private static List<Map<String, Object>> rawtypeListConvert(final List<Map<String, Object>> list) {
- List<Map<String,Object>> rList = new ArrayList<Map<String,Object>>();
- Map<String, Object> map = new HashMap<String, Object>();
- for(Map<String, Object> s : list) {
- map = rawtypeMapConvert(s);
- rList.add(map);
- }
- return rList;
- }
- private static Map<String, Object> rawtypeMapConvert (
- final Map<String, Object> params) {
- Map<String, Object> rParams = new HashMap<String, Object>(0);
- Iterator<String> iterator = params.keySet().iterator();
- while (iterator.hasNext()) {
- String key = (String) iterator.next();
- Object objResu = rawObjToObj(params.get(key));
- rParams.put(key, objResu);
- }
- return rParams;
- }
- private static Object rawObjToObj(Object obj) {
- Object objResu = null;
- if (obj instanceof IntegerType) {
- objResu = ((IntegerType) obj).asInt();
- } else if (obj instanceof ArrayType) {
- objResu = ((ArrayType) obj).asArray();
- } else if (obj instanceof BooleanType) {
- objResu = ((BooleanType) obj).asBoolean();
- } else if (obj instanceof FloatType) {
- objResu = ((FloatType) obj).asFloat();
- } else {
- objResu = ((RawType) obj).asString();
- }
- return objResu;
- }
- }
- package com.mytest;
- import java.util.HashMap;
- import java.util.Map;
- import org.msgpack.MessagePack;
- /**
- *
- * 功能描述:
- *
- * @author lw
- * @created 2011-6-13 上午09:12:07
- * @version 1.0.0
- * @date 2011-6-13 上午09:12:07
- */
- public class MapMain {
- public static void main(String[] args) {
- Map<String, Object> map = new HashMap<String, Object>();
- map.put("t", "aa1");
- map.put("f", 111);
- byte[] raw = MessagePack.pack(map);
- map = RawTypeUtil.unpackToMap(raw);
- System.out.println(map.get("t").toString() + " : "
- + map.get("f").toString());
- }
- }
- package com.mytest;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import java.util.Map;
- import org.msgpack.MessagePack;
- /**
- *
- *
- * 功能描述:
- *
- * @author lw
- * @created 2011-6-13 上午09:12:30
- * @version 1.0.0
- * @date 2011-6-13 上午09:12:30
- */
- public class ListMain {
- public static void main(String[] args) {
- List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
- Map<String, Object> map1 = new HashMap<String, Object>();
- map1.put("t", "aa1");
- map1.put("f", 111);
- Map<String, Object> map2 = new HashMap<String, Object>();
- map2.put("t", "aa2");
- map2.put("f", 333);
- list.add(map1);
- list.add(map2);
- byte[] raw = MessagePack.pack(list);
- List<Map<String, Object>> rList = new ArrayList<Map<String, Object>>();
- rList = RawTypeUtil.unpackToList(raw);
- for (Map<String, Object> s : rList) {
- System.out.println(s.get("t") + " : " + s.get("f"));
- }
- }
- }
相关推荐
标题中的"msgpack和msgpack-python包.zip"指的是一个包含两个关键组件的压缩文件:msgpack和msgpack-python。这两个组件在Python编程中用于数据序列化和反序列化,是机器学习和数据处理领域常用的技术。 msgpack...
**msgpack(C语言)简单用例** MsgPack(MessagePack)是一种高效的二进制序列化格式,用于在各种编程语言之间交换数据。它类似于JSON,但速度更快,占用的存储空间更小。在C语言中使用MsgPack可以提高程序的性能,...
**msgpack介绍** Msgpack(MessagePack)是一种高效的数据序列化协议,类似于JSON,但速度更快,体积更小。它广泛应用于分布式系统、网络通信和数据存储等领域,尤其是在需要快速处理大量数据的C/C++程序中。...
/msgpack/msgpack-python What's this ------------ `MessagePack <http://msgpack.org/>`_ is a fast, compact binary serialization format, suitable for similar data to JSON. This package provides CPython...
**msgpack工具库详解** MsgPack(MessagePack)是一种高效的二进制序列化格式,它允许数据以紧凑的形式存储和传输。MsgPack的目标是比JSON更快、更小,同时保持可读性,使得数据在不同系统间进行交换变得更加便捷。...
在iOS开发中,数据传输是应用与服务器交互的关键环节,而`msgpack`(MessagePack)是一种高效的二进制序列化格式,常用于快速、低带宽的数据交换。本篇文章将深入探讨如何在iOS开发中利用msgpack进行数据转换和传输...
最近研究cc直播协yi的时候,发现他的xx使用了msgpack封装有关于msgpack的介绍,官方是这样说的:比json更小的储存量,但是却和json相似。实际上也就是一系列的字节操作,对不同的类型设置了不用的标识,uint8-64,sign...
**前端项目-msgpack5.zip** 是一个包含前端项目源代码的压缩包,专注于msgpack v5的实现。Msgpack(MessagePack)是一种高效的数据序列化协议,类似于JSON,但更小、更快,适合在网络间传输数据或存储数据。在Node....
RPC 调用 msgpack 序列化问题分析 在本文中,我们将深入分析 RPC 调用 msgpack 序列化问题,探讨导致序列化失败的原因,并了解 msgpack 序列化的优缺点。 MsgPack 序列化简介 MsgPack 是一种高效的二进制序列化...
`msgpack`(MessagePack)是一种轻量级的二进制序列化格式,它能够高效地将数据结构转化为可传输的字节流,同时也支持反序列化回原始的数据结构。在`Delphi`中,`msgpack`通常被用来处理与服务器或中间件之间的通信...
**前端项目-msgpack-lite.zip** 是一个包含轻量级 MessagePack 编码解码器的前端项目,专注于在JavaScript环境中实现高效的数据序列化。MessagePack是一种二进制序列化格式,它比JSON更快、更小,特别适用于网络传输...
"msgpack-java-main.zip"这个压缩包很可能包含了MessagePack在Java中的主要实现,包括核心库、示例代码、文档或者测试用例等。通常,这样的库会提供API,让开发者能够轻松地在Java程序中集成MessagePack的功能。 ...
Swift中的MsgPack(MessagePack)是一种高效的二进制序列化格式,它允许将数据结构转换为字节流,便于在网络间传输或者存储。MsgPack在许多编程语言中都有支持,包括Swift。在Swift中,使用MsgPack进行序列化和反...
《PyPI官网下载 | msgpack-numpy-0.4.0.tar.gz——Python中的高效数据序列化库》 在Python的开发过程中,数据序列化是一个不可或缺的环节,它能够将复杂的数据结构转换为可存储或可传输的形式。msgpack-numpy就是...
**msgpack-0.5.7 知识点详解** `msgpack` 是一个高效的二进制序列化库,它的全称是 MessagePack,它能够将数据结构转换为二进制格式,便于在网络间快速传输或者存储。在 `msgpack-0.5.7` 版本中,我们关注的重点是...
资源分类:Python库 所属语言:Python 使用前提:需要解压 资源全名:msgpack-1.0.2-cp37-cp37m-win32.whl 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
msgpack - MessagePack is an extremely efficient object serialization library. It's like JSON, but very fast and small.
python库。 资源全名:msgpack-0.5.1-cp27-cp27m-manylinux1_x86_64.whl
在IT行业中,数据格式的选择对于通信效率和数据交换的便捷性至关重要。常见的数据格式有XML、JSON、Protocol...同时,利用合适的工具和库(如protobuf编译器、json库、msgpack库等),可以简化开发工作,提高开发效率。