我们在传输的时候都是以json格式传输TCP数据 如:
{"id":"9b51149b-62a6-4ecd-913a-03c86e4f1ee1","name":"jxd"}
但是 假如我们把key去掉 只保留value 如:
["9b51149b-62a6-4ecd-913a-03c86e4f1ee1","jxd"]
这就是 msgpack
它们的网站https://msgpack.org/ 假如很长的一个报文 去掉key的话 会极大减少带宽 ,我们依据顺序来 进行 Bean的组装
上代码:
首先老规矩 引入 maven 依赖
<dependency>
<groupId>org.msgpack</groupId>
<artifactId>msgpack</artifactId>
<version>0.6.12</version>
</dependency>
建立一个MsgEntity实体类
import lombok.Data;
import org.msgpack.annotation.Message;
@Data
@Message//注意必须要有无参数构造器
public class MsgEntity {
private String id;
private Integer age;
private String name;
public MsgEntity(String id, String name) {
this.id = id;
this.name = name;
}
public MsgEntity() {
}
建立一个测试代码
public class test {
public static void main(String[] args) throws IOException {
MsgEntity msgEntity = new MsgEntity(UUID.randomUUID().toString(), "jxd");
String json = JSONObject.toJSONString(msgEntity);
System.out.println(json);
MessagePack messagePack = new MessagePack();
//将对象转换成数组
byte[] by = messagePack.write(msgEntity);
//反序列化
Value read = messagePack.read(by);
System.out.println(read);//是没有Key的
}
}
运行结果如图所示,然后依据这个MsgEntity 顺序可以组装成Bean 对象 , 拿到这种数据之后可以用JAVA 的反射技术进行Bean的组装
}