1.java bean 序列化
https://www.cnblogs.com/xuxinstyle/p/10998672.html
2.原始的序列化并存库
/**
* 序列化与反序列化 POJO
* 注意:需要序列化的 POJO 对象上必须加上 org.msgpack.annotation.Message 注解:@Message
*/
public static void serializesPOJO() {
try {
List<String> poList = new ArrayList<>();
ProjectOrganization po = new ProjectOrganization();
po.setSalesLeadsId("1");
po.setProjectRole("项目经理");
po.setPost("销售");
po.setDepartment("销售部");
po.setFullName("xili");
ProjectOrganization po1 = new ProjectOrganization();
po1.setSalesLeadsId("2");
po1.setProjectRole("项目经理1");
po1.setPost("销售1");
po1.setDepartment("销售部1");
po1.setFullName("xili1");
ProjectOrganization po2 = new ProjectOrganization();
po2.setSalesLeadsId("2");
po2.setProjectRole("项目经理1");
po2.setPost("销售1");
po2.setDepartment("销售部1");
po2.setFullName("xili1");
poList.add(JSON.toJSONString(po));
poList.add(JSON.toJSONString(po1));
poList.add(JSON.toJSONString(po2));
System.out.println(JSON.toJSONString(po).length());
System.out.println(JSON.toJSONString(po1).length());
System.out.println(JSON.toJSONString(po2).length());
/** org.msgpack.MessagePack 是 java 开发的基本类
* 用于创建序列化器与反序列化器
*/
MessagePack messagePack = new MessagePack();
/**序列化指定的对象为字节数组——————整个序列化过程就是如此简单,一个 API 解决
* 提示:这个字节数组与 java.lang.String#getBytes() 返回的字节数组是不一样的
* 使用 String(byte bytes[]) 相应返回是得不到正常结果的
* 只能再通过 MessagePack 进行反序列化得到结果*/
byte[] raw = messagePack.write(poList);
/** read(byte[] bytes, Class<T> c)
* 将字节数组反序列化为指定类对象,c 指定 POJO 类即可
*/
StringBuffer x = new StringBuffer();
for (int i = 0, len = raw.length; i < len; i++) {
if (i == len - 1) {
x.append(raw[i]);
} else {
x.append(raw[i]).append(",");
}
}
System.out.println("raw.length=" + raw.length);
byte[] bF = x.toString().getBytes();
IntStream chars = x.toString().chars();
System.out.println("Arrays.toString(bF)=" + Arrays.toString(bF));
String x1 = new String(bF);
System.out.println("x1=" + x1);
System.out.println("x1.len=" + x1.length());
String[] xSplit = x1.split(",");
byte[] bytes = new byte[xSplit.length];
for (int i = 0; i < xSplit.length; i++) {
bytes[i] = Byte.parseByte(xSplit[i]);
}
List<String> dst = messagePack.read(bytes, Templates.tList(Templates.TString));
System.out.println(dst.get(0));
System.out.println(dst.get(1));
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
serializesPOJO();
}