JSON轉換和序列化的區別

2022-09-16 07:42:10 字數 1261 閱讀 5532

序列化是將物件狀態轉換為可保持或可傳輸的格式的過程。與序列化相對的是反序列化,它將流轉換為物件。這兩個過程結合起來,可以輕鬆地儲存和傳輸資料。

將物件的狀態資訊轉換為可以儲存或傳輸的窗體的過程。 在序列化期間,物件將其當前狀態寫入到臨時或永續性儲存區。以後,可以通過從儲存區中讀取或反序列化物件的狀態,重新建立該物件。

通常,物件例項的所有欄位都會被序列化,這意味著資料會被表示為例項的序列化資料。這樣,能夠解釋該格式的**有可能能夠確定這些資料的值,而不依賴於該成員的可訪問性。類似地,反序列化從序列化的表示形式中提取資料,並直接設定物件狀態,這也與可訪問性規則無關。 對於任何可能包含重要的安全性資料的物件,如果可能,應該使該物件不可序列化。如果它必須為可序列化的,請嘗試生成特定欄位來儲存不可序列化的重要資料。如果無法實現這一點,則應注意該資料會被公開給任何擁有序列化許可權的**,並確保不讓任何惡意**獲得該許可權。

json的概念

json,j**ascript object notation,一種更輕、更友好的用於介面(ajax、rest等)資料交換的格式。 json是結構化資料序列化的文字格式,作為xml的一種替代品,用於表示客戶端與伺服器間資料交換有效負載的格式。它是從ecmascript語言標準衍生而來的。json的設計目標是使它成為小的、輕便的、文字的,而且是j**ascript的乙個子集。

長度的比較

serialize在編碼後大概是json的兩倍。

原因:

serialize後字串包含了子串的長度,這可能是速度方面的優化,典型的空間換時間,但是它本身還是太重了。

serialize有更加詳細的型別區分,而json只有四種型別,並且是以簡單的符號表示。

速度的比較

serialize的速度在大資料量的情況下比json差了快乙個數量級。

從上面兩點看,json不管是在速度還是在生成的字串的大小上都比serialize要好,那為什麼serialize還要存在呢? 原因在下面這個點:實現的功能。

處理物件

json無法處理物件方法等資料。

使用範圍

序列化使用serialize,特別是物件的儲存,這是其存在的意義。

與物件無關的資料儲存可以使用json,如包含大量數字的陣列等。只是當遇到這種情況,我們需要做的可能是重構資料庫了。

資料交換時使用json,這也是其定義所在。目前json是能用於utf-8編碼的資料。

Json序列化和反序列化

json測試 public class jsontest irun 實體序列化和反序列化 string json1 jsonhelper.serializeobject sdudent json1 student sdudent1 jsonhelper.deserializejsontoobject...

JSON的序列化和反序列化

今天看了好多關於解析json的例子,但是都不全,而且還要自己找dll,於是自己寫了乙個全的json解析類,供以後參考 下面給出乙個要解析的字串 str str 1 解析json的工具類如下 1 在專案中新增引用 newtonsoft.json.dll,見附件 using system using s...

Json的序列化和反序列化

1 引用命名空間 using system.runtime.serialization 2 json的序列化和反序列化的方法 publicclass jsonhelper 反序列化 publicstatic t jsondeserialize string jsonstring 3 現在先準備乙個p...