序列化和反序列化

2021-10-07 18:31:38 字數 1031 閱讀 1231

概念

序列化是指把物件轉換為位元組序列的過程,而反序列化是指把位元組序列恢復為物件的過程(客戶端從檔案中或網路上獲得序列化後的物件位元組流後,根據位元組流中所儲存的物件狀態及描述資訊,重建物件)。

為什麼需要序列化?

for a complex object,「data」 are everywhere in memory. 

我們如何將這樣乙個物件儲存到檔案中? 如何將這個物件傳遞到另外乙個程序(inter-process communication), 或者傳遞到另外一台機器(remote procedure call)?  --序列化

we srialize an object into text (a human readable string/bytes array) or bytes (binary format).

text format

1. xml: 在webservice中應用最為廣泛,但是資料冗餘

2. json: 瀏覽器對於json資料支援非常好,有很多內建的函式支援。使用鍵值對的方式,壓縮了一定的資料空間 

3. protobuf: 谷歌開源的一種資料格式,適合高效能,對響應速度有要求的資料傳輸場景。二進位制資料格式,資料本身不具有可讀性,反序列化之後得到真正可讀的資料;序列化後體積相比json和xml很小,適合網路傳輸,並且序列化反序列化速度很快。

4. querystring: array>

[ "q" : "text",

"source": "web",

"timestamp": "20200704"

serialize: url?q=text&source=web×tamp=20200704

binary format

優點:更快 (no serialization at all, just dump the memory block)

缺點:1. 長度必須是預定義的,不能有動態分配的記憶體

2. 不是向下相容的

序列化和反序列化 C 序列化與反序列化。

序列化介紹 把物件用一種新的格式來表示。系列化只序列化資料。序列化不建議使用自動屬性 為什麼要序列化 將乙個複雜的物件轉換流,方便儲存與資訊交換。class program class person public int age 二進位制序列化 就是將物件變成流的過程,把物件變成byte class...

序列化和反序列化

先定義乙個類 serializable xmlroot shintech public class person set public string name set public person this 0,string.empty public person int m age,string m...

序列化和反序列化

引文來自 序列化和反序列化我們可能經常會聽到,其實通俗一點的解釋,序列化就是把乙個物件儲存到乙個檔案或資料庫欄位中去,反序列化就是在適當的時候把這個檔案再轉化成原來的物件使用。using system using system.collections using system.text namesp...