2013-01-20 66 views
1

我已經寫了一個死簡單的序列化格式,首先將它們轉換成大字節形式的字節,然後用一個字節作爲前綴來指定數字佔用的字節數,從而對無符號整數進行編碼。例如。 3 = 01 03268 = 02 01 0C。整數範圍因此爲02^255 - 1序列化格式的名稱

我使用它通過在字符串前加上字符串長度的編碼來序列化字符串,然後我可以很容易地序列化任意結構,例如字符串列表是元素數量的編碼,後面跟着編碼每個字符串。

這是在PHP:https://gist.github.com/4577886

我的問題是:你稱這種串行化方法是什麼?它經常使用嗎?它有什麼問題嗎?

謝謝。

回答

2

這是一種type-length-value,沒有類型。這就是它的錯誤。你如何知道接下來的4個字節是int還是一個字符串還是一個4字節的數組?

+1

序列化是靜態類型的。您的代碼應該知道它正在讀取的字節的期望類型,然後在解析時發生的任何故障都被認爲是損壞的數據。 – Jesse

+0

另外我接受這個答案,因爲「type-length-value」的確是我正在尋找的名稱。 – Jesse