ProtoStuff序列化工具

2021-07-22 04:32:59 字數 1634 閱讀 7416

專案中http通訊離不開物件的序列化和反序列化,通過序列化技術,可以跨語言實現資料的傳輸,例如把乙個物件序列化後的二進位制資料、xml格式資料存放在檔案中,下次通過讀取檔案,然後反序列化一下即可重新生成該物件,抑或通過網路把序列化後的資料傳輸到另乙個終端,對方通過反序列化後也可以重新複製出乙個大概相同的物件出來。

public

class protostuffutil

@suppresswarnings("unchecked")

//獲得模式

schemaschema = (schema) runtimeschema.getschema(obj.getclass());

//快取

linkedbuffer buffer = linkedbuffer.allocate(linkedbuffer.default_buffer_size);

byte protostuff = null;

try catch (exception e) finally

return protostuff;

}//反序列化普通物件

public

static

t deserialize(byte data, classtargetclass)

t instance = null;

try catch (instantiationexception | illegalacces***ception e)

schemaschema = runtimeschema.getschema(targetclass);

//核心**

protostuffioutil.mergefrom(data, instance, schema);

return instance;

}//序列化列表

public

static

byte serializelist(listobjlist)

@suppresswarnings("unchecked")

schemaschema = (schema) runtimeschema.getschema(objlist.get(0).getclass());

linkedbuffer buffer = linkedbuffer.allocate(linkedbuffer.default_buffer_size);

byte protostuff = null;

bytearrayoutputstream bos = null;

try catch (exception e) finally

} catch (ioexception e)

}return protostuff;

}//反序列化列表

public

static

listdeserializelist(byte paramarrayofbyte, classtargetclass)

schemaschema = runtimeschema.getschema(targetclass);

listresult = null;

try catch (ioexception e)

return result;

}}

物件序列化工具

物件類的序列化輕型的xml和複雜型的byte方式 物件序列化工具 public class objectserializationhelper return xmlserializer dict thash 把物件序列化為字串 物件型別 物件 序列化後的字串,失敗則會丟擲異常資訊 public st...

Marshmallow JSON 序列化工具

轉換格式 string object string互相轉換 定義 scheme from datetime import datetime class user def init self,name,email self.name name self.email email self.created...

Protostuff序列化和反序列化

protostuff在序列化和反序列化的速度上是非常快的,在要求速度簡潔快速可以使用此框架,相比protobuffer使用起來簡單方便 public class serializationutil 獲取類的schema param cls cls return schema suppresswarn...