xml序列化與反序列化 為什么XML需要序列化和反序列化?
為什么XML需要序列化和反序列化?序列化是將對(duì)象保存到文件或數(shù)據(jù)庫字段。反序列化是在適當(dāng)?shù)臅r(shí)間將文件轉(zhuǎn)換為原始對(duì)象。我認(rèn)為主要功能如下:1。下次啟動(dòng)時(shí)讀取上次保存對(duì)象的信息2。在不同的應(yīng)用程序域或進(jìn)程
為什么XML需要序列化和反序列化?
序列化是將對(duì)象保存到文件或數(shù)據(jù)庫字段。反序列化是在適當(dāng)?shù)臅r(shí)間將文件轉(zhuǎn)換為原始對(duì)象。我認(rèn)為主要功能如下:
1。下次啟動(dòng)時(shí)讀取上次保存對(duì)象的信息
2。在不同的應(yīng)用程序域或進(jìn)程之間傳輸數(shù)據(jù)
3。在分布式應(yīng)用系統(tǒng)中傳輸數(shù)據(jù)
序列化和反序列化不是C語言獨(dú)有的,包括Java、PHP、JS等。序列化是將對(duì)象狀態(tài)轉(zhuǎn)換為可維護(hù)或傳輸?shù)母袷降倪^程,如二進(jìn)制、XML、JSON等。序列化的對(duì)立面是反序列化,它將流轉(zhuǎn)換為對(duì)象,即將序列化過程中生成的二進(jìn)制字符串、XML、JSON轉(zhuǎn)換為數(shù)據(jù)結(jié)構(gòu)或?qū)ο蟮倪^程。這兩個(gè)過程可以結(jié)合起來方便地存儲(chǔ)和傳輸數(shù)據(jù)。
反序列化失敗,xml中有特殊字符,這種情況怎么處理?
此技術(shù)主要用于RMI(遠(yuǎn)程傳輸和返回對(duì)象作為參數(shù))和JavaBeans。Java還提供了xmlcodector和xmdecoder類來將JavaBeans對(duì)象序列化為XML文件,但是這種方法對(duì)Java類有很多不便和限制(滿足get/set方法等,否則可能會(huì)丟失屬性值)。XStream是一個(gè)強(qiáng)大的開源工具,它還可以將對(duì)象保存到XML文件中,并在沒有太多限制的情況下恢復(fù)它們。采用XML作為對(duì)象傳輸?shù)耐ㄓ脭?shù)據(jù)格式,實(shí)現(xiàn)跨平臺(tái)的進(jìn)程通信。序列化反序列化機(jī)制的強(qiáng)大之處在于它能自動(dòng)處理序列化對(duì)象之間的復(fù)雜關(guān)系(對(duì)象之間相互引用,形成復(fù)雜的對(duì)象網(wǎng)絡(luò),因此必須保證這種關(guān)系被準(zhǔn)確存儲(chǔ))。我們可以通過反序列化對(duì)象來實(shí)現(xiàn)與深度克隆對(duì)象相同的效果,當(dāng)然在性能上肯定會(huì)有很大損失。