国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      傳遞樹(shù)形結(jié)構(gòu)對(duì)象的方法

      文檔序號(hào):6584581閱讀:221來(lái)源:國(guó)知局

      專利名稱::傳遞樹(shù)形結(jié)構(gòu)對(duì)象的方法
      技術(shù)領(lǐng)域
      :本發(fā)明涉及傳遞樹(shù)形結(jié)構(gòu)對(duì)象的方法,更具體地涉及在C/S結(jié)構(gòu)的環(huán)境下傳遞一個(gè)樹(shù)形結(jié)構(gòu)的對(duì)象的方法。
      背景技術(shù)
      :在C/S結(jié)構(gòu)的環(huán)境下經(jīng)常需要傳遞一個(gè)樹(shù)形結(jié)構(gòu)的對(duì)象,例如在客戶端需要獲得服務(wù)器的目錄結(jié)構(gòu),但是當(dāng)這個(gè)樹(shù)形結(jié)構(gòu)非常巨大的情況下,通常的對(duì)象序列化的方式無(wú)法減少網(wǎng)絡(luò)數(shù)據(jù)的傳輸量,即使利用了壓縮技術(shù),也不能有效地解決傳輸數(shù)據(jù)量的問(wèn)題。在Java中,為了便利,樹(shù)形結(jié)構(gòu)往往利用DefaultMutableTreeNode類或其子類來(lái)表示,如果這個(gè)對(duì)象需要在網(wǎng)絡(luò)上傳輸,通常的做法是利用默認(rèn)的對(duì)象序列化技術(shù),將這個(gè)對(duì)象序列化到網(wǎng)絡(luò)流里,但是當(dāng)這個(gè)樹(shù)形對(duì)象非常巨大的情況下,網(wǎng)絡(luò)上的傳遞效率將嚴(yán)重影響到應(yīng)用。即使是使用了壓縮技術(shù),但其實(shí)效果并不很理想,因?yàn)橥ǔ5膲嚎s技術(shù)對(duì)文本的壓縮率很高,而對(duì)于二進(jìn)制的對(duì)象,壓縮率并不高。而且,直接序列化DefaultMutableTreeNode對(duì)象,里面包含了許多我們并不關(guān)心的數(shù)據(jù),例如一些類信息,這些數(shù)據(jù)的傳遞對(duì)帶寬也是一種浪費(fèi)。也有的實(shí)現(xiàn)方式是將樹(shù)形對(duì)象序列化為一個(gè)xml文檔格式的字符串序列,但是xml文檔中的結(jié)構(gòu)化信息也占有較大的比例,有效數(shù)據(jù)的荷載并不高,降低了網(wǎng)絡(luò)的有效帶寬。網(wǎng)絡(luò)傳輸要解決的問(wèn)題就是如何減少傳輸?shù)臄?shù)據(jù)量。針對(duì)常用技術(shù)的一些缺陷,本發(fā)明要解決的技術(shù)問(wèn)題是針對(duì)樹(shù)形對(duì)象的一些特點(diǎn),將樹(shù)形對(duì)象序列化為一個(gè)有結(jié)構(gòu)的字符串,而這個(gè)有結(jié)構(gòu)的字符串的結(jié)構(gòu)化信息要盡可能地小,并且要能夠從這個(gè)結(jié)構(gòu)化的字符串解析出樹(shù)形對(duì)象,在此基礎(chǔ)上,結(jié)合壓縮技術(shù)的優(yōu)勢(shì),將網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量減少到最低。
      發(fā)明內(nèi)容為了解決上述技術(shù)問(wèn)題,本發(fā)明提供了一種傳遞樹(shù)形結(jié)構(gòu)對(duì)象的方法,包括將所述樹(shù)形結(jié)構(gòu)對(duì)象序列化為有結(jié)構(gòu)的字符串;將所述有結(jié)構(gòu)的字符串發(fā)送至接收端;以及在所述接收端將所述字符串反序列化為所述樹(shù)形結(jié)構(gòu)對(duì)象。其中,將所述樹(shù)形結(jié)構(gòu)對(duì)象序列化為字符串的步驟可以包括定義控制字符;以及使用所述控制字符和所述樹(shù)形結(jié)構(gòu)對(duì)象的節(jié)點(diǎn)的序列化值從樹(shù)的根節(jié)點(diǎn)開(kāi)始將所述樹(shù)形結(jié)構(gòu)對(duì)象序列化為所述字符串。其中,控制字符可以包括父節(jié)點(diǎn)開(kāi)始標(biāo)識(shí)符、父節(jié)點(diǎn)結(jié)束標(biāo)識(shí)符、以及葉子節(jié)點(diǎn)標(biāo)識(shí)符。其中,在所述接收端將所述字符串反序列化為所述樹(shù)形結(jié)構(gòu)對(duì)象步驟包括從所述字符串中依次讀取字符并判斷所讀取的每個(gè)字符是否為所述控制字符直到讀完所述字符串的結(jié)尾;以及如果確定所讀取的字符不是所述控制字符,則繼續(xù)讀取所述字符串,否則根據(jù)所讀取的所述控制字符來(lái)確定所述樹(shù)形結(jié)構(gòu)對(duì)象的節(jié)點(diǎn)的類型,以及確定前面所讀取的字符為所述樹(shù)形結(jié)構(gòu)對(duì)象的節(jié)點(diǎn)的序列化值。其中,當(dāng)確定所讀取的所述控制字符是所述父節(jié)點(diǎn)開(kāi)始標(biāo)識(shí)符時(shí),將當(dāng)前節(jié)點(diǎn)掛到當(dāng)前父節(jié)點(diǎn),并將所述當(dāng)前父節(jié)點(diǎn)設(shè)置為新的當(dāng)前父節(jié)點(diǎn)。當(dāng)確定所讀取的所述控制字符是所述父節(jié)點(diǎn)結(jié)束標(biāo)識(shí)符時(shí),表示當(dāng)前父節(jié)點(diǎn)的所有子節(jié)點(diǎn)都解析完畢。當(dāng)確定所讀取的所述控制字符是所述葉子節(jié)點(diǎn)標(biāo)識(shí)符時(shí),將當(dāng)前節(jié)點(diǎn)掛到當(dāng)前父節(jié)點(diǎn)上。其中,字符串可以存儲(chǔ)在接收端并利用數(shù)字摘要技術(shù)對(duì)所述字符串進(jìn)行版本標(biāo)示。在所述接收端請(qǐng)求所述樹(shù)形結(jié)構(gòu)對(duì)象時(shí),利用所述版本標(biāo)示確定所述樹(shù)形結(jié)構(gòu)對(duì)象是否為新版本;以及在所述樹(shù)形結(jié)構(gòu)對(duì)象為新版本時(shí),發(fā)送所述樹(shù)形結(jié)構(gòu)對(duì)象對(duì)應(yīng)的所述字符串,否則返回特定標(biāo)識(shí)來(lái)表示所述樹(shù)形結(jié)構(gòu)對(duì)象不是新版本。在所述樹(shù)形結(jié)構(gòu)對(duì)象是新版本時(shí),更新存儲(chǔ)在所述接收端的所述字符串。根據(jù)本發(fā)明的傳遞樹(shù)形結(jié)構(gòu)對(duì)象的方法通過(guò)將樹(shù)形對(duì)象序列化為盡可能小的有結(jié)構(gòu)的字符串,并能從這個(gè)結(jié)構(gòu)化的字符串反序列化為樹(shù)形對(duì)象的技術(shù)來(lái)解決問(wèn)題,由于網(wǎng)絡(luò)傳遞的是字符串?dāng)?shù)據(jù),所以能充分利用壓縮技術(shù)的優(yōu)勢(shì),進(jìn)一步將網(wǎng)絡(luò)傳遞數(shù)據(jù)量減到最小,有效的解決了樹(shù)形對(duì)象在網(wǎng)絡(luò)上的傳遞效率。圖1示出了根據(jù)本發(fā)明的傳遞樹(shù)形結(jié)構(gòu)對(duì)象的方法的流程圖;圖2示出了根據(jù)本發(fā)明的實(shí)施例的傳遞樹(shù)形結(jié)構(gòu)對(duì)象的方法中序列化流程圖;以及圖3示出了根據(jù)本發(fā)明的實(shí)施例的傳遞樹(shù)形結(jié)構(gòu)對(duì)象的方法中反序列化流程圖。具體實(shí)施例方式下面將參考附圖詳細(xì)說(shuō)明根據(jù)本發(fā)明的傳遞樹(shù)形結(jié)構(gòu)對(duì)象的方法。圖1示出了根據(jù)本發(fā)明的傳遞樹(shù)形結(jié)構(gòu)對(duì)象的方法的流程圖。如圖1所示,根據(jù)本發(fā)明的傳遞樹(shù)形結(jié)構(gòu)對(duì)象的方法包括步驟102,將樹(shù)形結(jié)構(gòu)對(duì)象序列化為有結(jié)構(gòu)的字符串;步驟104,將有結(jié)構(gòu)的字符串發(fā)送至接收端;以及步驟106,在接收端將字符串反序列化為樹(shù)形結(jié)構(gòu)對(duì)象。其中,步驟102可以包括定義控制字符;以及使用所述控制字符和所述樹(shù)形結(jié)構(gòu)對(duì)象的節(jié)點(diǎn)的序列化值從樹(shù)的根節(jié)點(diǎn)開(kāi)始將所述樹(shù)形結(jié)構(gòu)對(duì)象序列化為所述字符串??刂谱址梢园ǜ腹?jié)點(diǎn)開(kāi)始標(biāo)識(shí)符、父節(jié)點(diǎn)結(jié)束標(biāo)識(shí)符、以及葉子節(jié)點(diǎn)標(biāo)識(shí)符。其中,步驟106可以包括從所述字符串中依次讀取字符并判斷所讀取的每個(gè)字符是否為所述控制字符直到讀完所述字符串的結(jié)尾;以及如果確定所讀取的字符不是所述控制字符,則繼續(xù)讀取所述字符串,否則根據(jù)所讀取的所述控制字符來(lái)確定所述樹(shù)形結(jié)構(gòu)對(duì)象的節(jié)點(diǎn)的類型,以及確定前面所讀取的字符為所述樹(shù)形結(jié)構(gòu)對(duì)象的節(jié)點(diǎn)的序列化值。其中,當(dāng)確定所讀取的所述控制字符是所述父節(jié)點(diǎn)開(kāi)始標(biāo)識(shí)符時(shí),將當(dāng)前節(jié)點(diǎn)掛到當(dāng)前父節(jié)點(diǎn),并將所述當(dāng)前父節(jié)點(diǎn)設(shè)置為新的當(dāng)前父節(jié)點(diǎn)。當(dāng)確定所讀取的所述控制字符是所述父節(jié)點(diǎn)結(jié)束標(biāo)識(shí)符時(shí),表示當(dāng)前父節(jié)點(diǎn)的所有子節(jié)點(diǎn)都解析完畢。當(dāng)確定所讀取的所述控制字符是所述葉子節(jié)點(diǎn)標(biāo)識(shí)符時(shí),將當(dāng)前節(jié)點(diǎn)掛到當(dāng)前父節(jié)點(diǎn)上。其中,字符串可以存儲(chǔ)在接收端并利用數(shù)字摘要技術(shù)對(duì)所述字符串進(jìn)行版本標(biāo)示。在所述接收端請(qǐng)求所述樹(shù)形結(jié)構(gòu)對(duì)象時(shí),利用所述版本標(biāo)示確定所述樹(shù)形結(jié)構(gòu)對(duì)象是否為新版本;以及在所述樹(shù)形結(jié)構(gòu)對(duì)象為新版本時(shí),發(fā)送所述樹(shù)形結(jié)構(gòu)對(duì)象對(duì)應(yīng)的所述字符串,否則返回特定標(biāo)識(shí)來(lái)表示所述樹(shù)形結(jié)構(gòu)對(duì)象不是新版本。在所述樹(shù)形結(jié)構(gòu)對(duì)象是新版本時(shí),更新存儲(chǔ)在所述接收端的所述字符串。下面將結(jié)合圖2描述根據(jù)本發(fā)明的實(shí)施例的傳遞樹(shù)形結(jié)構(gòu)對(duì)象的方法中序列化流程圖。在圖2所示的實(shí)施例中,定義了控制字符,包括父節(jié)點(diǎn)開(kāi)始標(biāo)識(shí)符,在該實(shí)施例中默認(rèn)為“<”,父節(jié)點(diǎn)結(jié)束標(biāo)識(shí)符,在該實(shí)施例中默認(rèn)為“>”,以及葉子節(jié)點(diǎn)標(biāo)識(shí)符,在該實(shí)施例中默認(rèn)為“|”,其語(yǔ)法定義為字符串序列值=(非葉子節(jié)點(diǎn)||葉子節(jié)點(diǎn))|(非葉子節(jié)點(diǎn)||葉子節(jié)點(diǎn))*;非葉子節(jié)點(diǎn)=node<(非葉子節(jié)點(diǎn)||葉子節(jié)點(diǎn))|(非葉子節(jié)點(diǎn)||葉子節(jié)點(diǎn))*>;葉子節(jié)點(diǎn)=node|,其中“*”表示0n個(gè),“||,,表示或者,"node"表示單個(gè)節(jié)點(diǎn)的序列化值。通過(guò)上面的結(jié)構(gòu)化字符串可以表達(dá)任何的樹(shù)形結(jié)構(gòu),并從這個(gè)字符串中解析出樹(shù)形結(jié)構(gòu)。在此,本領(lǐng)域的技術(shù)人員應(yīng)該理解,可以為父節(jié)點(diǎn)開(kāi)始標(biāo)識(shí)符、父節(jié)點(diǎn)結(jié)束標(biāo)識(shí)符以及葉子節(jié)點(diǎn)標(biāo)識(shí)符預(yù)設(shè)默認(rèn)值,而不必局限于上面的“<”、“>”和“I”。如圖2所示,在步驟202,從樹(shù)的根節(jié)點(diǎn)開(kāi)始序列化;然后在步驟204判斷樹(shù)的根節(jié)點(diǎn)是否有子節(jié)點(diǎn),如果沒(méi)有子節(jié)點(diǎn)(步驟204,否),則在步驟214輸出節(jié)點(diǎn)的序列化值,并在步驟216緊跟一個(gè)葉子節(jié)點(diǎn)標(biāo)識(shí)符。如果確定包含有子節(jié)點(diǎn)(步驟204,是),則在步驟206先輸出節(jié)點(diǎn)的序列化值,并在步驟208緊跟一個(gè)父節(jié)點(diǎn)開(kāi)始標(biāo)識(shí)符,然后在步驟210確定是否還有子節(jié)點(diǎn)沒(méi)有輸出,返回到步驟202,遍歷所有的子節(jié)點(diǎn)遞歸地輸出子節(jié)點(diǎn)的序列化值,遍歷結(jié)束后,再在步驟212輸出一個(gè)父節(jié)點(diǎn)結(jié)束標(biāo)識(shí)符。圖3示出了根據(jù)本發(fā)明的實(shí)施例的傳遞樹(shù)形結(jié)構(gòu)對(duì)象的方法中反序列化流程圖。如圖3所示,在步驟302,從字符串流里讀取一個(gè)字符,在步驟304確定該字符是否為控制字符,如果這個(gè)字符不是控制字符(步驟304為否,在該實(shí)施例中為<或>或|),則表示應(yīng)該繼續(xù)讀取流返回到步驟302,直到碰到上述三種控制字符中的一個(gè),這表示讀取到一個(gè)完整節(jié)點(diǎn)的序列化值,在步驟306返回一個(gè)字符串。在步驟308,確定所碰到的控制字符是否為父節(jié)點(diǎn)開(kāi)始符合,如果碰到的是父節(jié)點(diǎn)開(kāi)始符號(hào)(步驟308,是),則說(shuō)明當(dāng)前的節(jié)點(diǎn)是一個(gè)非葉子節(jié)點(diǎn),在步驟310實(shí)例化該節(jié)點(diǎn),將其掛到當(dāng)前父結(jié)節(jié)點(diǎn)上,并設(shè)置這個(gè)節(jié)點(diǎn)為新的當(dāng)前父節(jié)點(diǎn)。如果在步驟308確定所碰到的控制字符不是父節(jié)點(diǎn)開(kāi)始符號(hào)(步驟308,否),則在步驟312確定碰到的控制字符是否為父節(jié)點(diǎn)結(jié)束符號(hào),如果確定是父節(jié)點(diǎn)結(jié)束符號(hào)(步驟312,是)說(shuō)明當(dāng)前父結(jié)點(diǎn)的所有子節(jié)點(diǎn)都已經(jīng)解析完畢,此時(shí),在步驟314應(yīng)該將當(dāng)前父節(jié)點(diǎn)的父節(jié)點(diǎn)設(shè)置為當(dāng)前父節(jié)點(diǎn)。如果確定不是父節(jié)點(diǎn)結(jié)束符號(hào)(步驟312,否),則在步驟316確定所碰到的控制字符是否為葉子節(jié)點(diǎn)符號(hào),如果碰到的是葉子節(jié)點(diǎn)符號(hào)(步驟316,是),說(shuō)明當(dāng)前節(jié)點(diǎn)是一個(gè)葉子節(jié)點(diǎn),在步驟318實(shí)例化該節(jié)點(diǎn),將其掛到當(dāng)前父結(jié)節(jié)點(diǎn)上。否則(步驟316,否)則返回到步驟301,這樣一直到字符串流的結(jié)尾,就可以成功地解析出一個(gè)樹(shù)形結(jié)構(gòu)。成功地實(shí)現(xiàn)樹(shù)形結(jié)構(gòu)的序列化和反序列化是本方案的核心技術(shù),由于通常的壓縮算法(例如zip壓縮算法)對(duì)文本字符串的壓縮率相當(dāng)高,所以此時(shí)再利用壓縮技術(shù)對(duì)生成的字符串進(jìn)行壓縮來(lái)進(jìn)一步減少網(wǎng)絡(luò)的傳輸量。這比直接壓縮二進(jìn)制數(shù)據(jù)來(lái)說(shuō),壓縮率會(huì)更高。對(duì)于另外一些應(yīng)用場(chǎng)景,例如客戶端需要了解服務(wù)器的某個(gè)目錄結(jié)構(gòu)。由于通常目錄結(jié)構(gòu)的變化不是很頻繁,所以,可以將目錄結(jié)構(gòu)字符串緩存在客戶端,并利用數(shù)字摘要技術(shù)對(duì)其進(jìn)行版本標(biāo)示。這樣,在向服務(wù)器請(qǐng)求目錄結(jié)構(gòu)時(shí),同時(shí)向服務(wù)器發(fā)送本地緩存的版本,服務(wù)器接收到請(qǐng)求后,也先將服務(wù)器目錄結(jié)構(gòu)序列化,并計(jì)算其版本,如果發(fā)現(xiàn)服務(wù)器端版本和客戶端版本不一致時(shí),向客戶端傳遞新的目錄結(jié)構(gòu)序列化字符串,如果發(fā)現(xiàn)服務(wù)器端版本和客戶端版本一致,那么向客戶端返回一個(gè)特殊標(biāo)識(shí)。在客戶端,當(dāng)發(fā)現(xiàn)接收到的是一個(gè)特殊標(biāo)識(shí),表明目錄結(jié)構(gòu)沒(méi)有發(fā)生變化,可以使用緩存的目錄結(jié)構(gòu),而當(dāng)發(fā)現(xiàn)接收到一個(gè)新的序列化字符串時(shí),則說(shuō)明目錄結(jié)構(gòu)發(fā)生了變化,應(yīng)使用新的目錄結(jié)構(gòu)更新本地緩存。這樣,在實(shí)際的環(huán)境中,大多數(shù)情況下,如果樹(shù)形結(jié)構(gòu)沒(méi)有發(fā)生變化,則不論這個(gè)樹(shù)形結(jié)構(gòu)到底有多大,在網(wǎng)絡(luò)上發(fā)生的數(shù)據(jù)流量也是非常小的,大概30個(gè)子節(jié)而已(利用數(shù)字摘要標(biāo)識(shí)版本,其版本長(zhǎng)度一般是1620個(gè)子節(jié)長(zhǎng))。這樣就最大程度地降低了網(wǎng)絡(luò)負(fù)荷。根據(jù)本發(fā)明的方法應(yīng)用在產(chǎn)品中的多語(yǔ)言模塊中。在多語(yǔ)言實(shí)現(xiàn)方案中,當(dāng)客戶端在初始化的時(shí)候,需要了解服務(wù)器上的多語(yǔ)言資源的目錄化的結(jié)構(gòu),以便對(duì)多語(yǔ)言資源進(jìn)行初始化。而通常,多語(yǔ)資源的目錄結(jié)構(gòu)是直接傳遞對(duì)象的方式進(jìn)行,然而,隨著產(chǎn)品多語(yǔ)化的發(fā)展,這個(gè)目錄結(jié)構(gòu)已經(jīng)變得越來(lái)越大了,以前的技術(shù)方案已經(jīng)不能滿足需要,在客戶端多語(yǔ)言資源目錄結(jié)構(gòu)的初始化過(guò)程中,傳遞服務(wù)器多語(yǔ)言資源目錄結(jié)構(gòu)已經(jīng)影響到客戶端的初始化效率了。為了解決這個(gè)問(wèn)題,應(yīng)用了本發(fā)明中的技術(shù),將樹(shù)形結(jié)構(gòu)序列化為一個(gè)字符串,這樣既能減少一部分不必要的數(shù)據(jù),又能更加充分地利用壓縮技術(shù)的威力,進(jìn)一步地減少了網(wǎng)絡(luò)上的數(shù)據(jù)傳輸量。再利用客戶端的緩存技術(shù),當(dāng)服務(wù)器目錄結(jié)構(gòu)沒(méi)有變化時(shí),直接從本地緩存讀取,將網(wǎng)絡(luò)傳遞量降到最低。在產(chǎn)品中使用本發(fā)明,在使用之前,客戶端需要下載服務(wù)器上的多語(yǔ)言資源目錄樹(shù)結(jié)構(gòu),在一些環(huán)境上,需要45秒時(shí)間,特別是在廣域網(wǎng)的應(yīng)用環(huán)境下,至少需要10多秒的時(shí)間,而應(yīng)用了此方案后,最多也就需要消費(fèi)幾百毫秒,而在服務(wù)器目錄結(jié)構(gòu)沒(méi)有變化的條件下,更是可以忽略不計(jì)的程度。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技術(shù)人員來(lái)說(shuō),本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。權(quán)利要求一種傳遞樹(shù)形結(jié)構(gòu)對(duì)象的方法,其特征在于,包括將所述樹(shù)形結(jié)構(gòu)對(duì)象序列化為有結(jié)構(gòu)的字符串;將有結(jié)構(gòu)的所述字符串發(fā)送至接收端;以及在所述接收端將所述字符串反序列化為所述樹(shù)形結(jié)構(gòu)對(duì)象。2.根據(jù)權(quán)利要求1所述的傳遞樹(shù)形結(jié)構(gòu)對(duì)象的方法,其特征在于,所述將所述樹(shù)形結(jié)構(gòu)對(duì)象序列化為字符串的步驟包括定義控制字符;以及使用所述控制字符和所述樹(shù)形結(jié)構(gòu)對(duì)象的節(jié)點(diǎn)的序列化值從樹(shù)的根節(jié)點(diǎn)開(kāi)始將所述樹(shù)形結(jié)構(gòu)對(duì)象序列化為所述字符串。3.根據(jù)權(quán)利要求2所述的傳遞樹(shù)形結(jié)構(gòu)對(duì)象的方法,其特征在于,所述控制字符包括父節(jié)點(diǎn)開(kāi)始標(biāo)識(shí)符、父節(jié)點(diǎn)結(jié)束標(biāo)識(shí)符、以及葉子節(jié)點(diǎn)標(biāo)識(shí)符。4.根據(jù)權(quán)利要求2或3所述的傳遞樹(shù)形結(jié)構(gòu)對(duì)象的方法,其特征在于,所述在所述接收端將所述字符串反序列化為所述樹(shù)形結(jié)構(gòu)對(duì)象步驟包括從所述字符串中依次讀取字符并判斷所讀取的每個(gè)字符是否為所述控制字符直到讀完所述字符串的結(jié)尾;以及如果確定所讀取的字符不是所述控制字符,則繼續(xù)讀取所述字符串,否則根據(jù)所讀取的所述控制字符來(lái)確定所述樹(shù)形結(jié)構(gòu)對(duì)象的節(jié)點(diǎn)的類型,以及確定前面所讀取的字符為所述樹(shù)形結(jié)構(gòu)對(duì)象的節(jié)點(diǎn)的序列化值。5.根據(jù)權(quán)利要求4所述的傳遞樹(shù)形結(jié)構(gòu)對(duì)象的方法,其特征在于,當(dāng)確定所讀取的所述控制字符是所述父節(jié)點(diǎn)開(kāi)始標(biāo)識(shí)符時(shí),將當(dāng)前節(jié)點(diǎn)掛到當(dāng)前父節(jié)點(diǎn),并將所述當(dāng)前父節(jié)點(diǎn)設(shè)置為新的當(dāng)前父節(jié)點(diǎn)。6.根據(jù)權(quán)利要求4所述的傳遞樹(shù)形結(jié)構(gòu)對(duì)象的方法,其特征在于,當(dāng)確定所讀取的所述控制字符是所述父節(jié)點(diǎn)結(jié)束標(biāo)識(shí)符時(shí),表示當(dāng)前父節(jié)點(diǎn)的所有子節(jié)點(diǎn)都解析完畢。7.根據(jù)權(quán)利要求4所述的傳遞樹(shù)形結(jié)構(gòu)對(duì)象的方法,其特征在于,當(dāng)確定所讀取的所述控制字符是所述葉子節(jié)點(diǎn)標(biāo)識(shí)符時(shí),將當(dāng)前節(jié)點(diǎn)掛到當(dāng)前父節(jié)點(diǎn)上。8.根據(jù)權(quán)利要求1所述的傳遞樹(shù)形結(jié)構(gòu)對(duì)象的方法,其特征在于,進(jìn)一步包括所述字符串存儲(chǔ)在所述接收端并利用數(shù)字摘要技術(shù)對(duì)所述字符串進(jìn)行版本標(biāo)示。9.根據(jù)權(quán)利要求8所述的傳遞樹(shù)形結(jié)構(gòu)對(duì)象的方法,其特征在于,進(jìn)一步包括在所述接收端請(qǐng)求所述樹(shù)形結(jié)構(gòu)對(duì)象時(shí),利用所述版本標(biāo)示確定所述樹(shù)形結(jié)構(gòu)對(duì)象是否為新版本;以及在所述樹(shù)形結(jié)構(gòu)對(duì)象為新版本時(shí),發(fā)送所述樹(shù)形結(jié)構(gòu)對(duì)象對(duì)應(yīng)的所述字符串,否則返回特定標(biāo)識(shí)來(lái)表示所述樹(shù)形結(jié)構(gòu)對(duì)象不是新版本。10.根據(jù)權(quán)利要求9所述的傳遞樹(shù)形結(jié)構(gòu)對(duì)象的方法,其特征在于,進(jìn)一步包括在所述樹(shù)形結(jié)構(gòu)對(duì)象是新版本時(shí),更新存儲(chǔ)在所述接收端的所述字符串。全文摘要本發(fā)明提供了一種傳遞樹(shù)形結(jié)構(gòu)對(duì)象的方法,包括將樹(shù)形結(jié)構(gòu)對(duì)象序列化為有結(jié)構(gòu)的字符串;將有結(jié)構(gòu)的字符串發(fā)送至接收端;以及在接收端將所述字符串反序列化為所述樹(shù)形結(jié)構(gòu)對(duì)象。根據(jù)本發(fā)明的傳遞樹(shù)形結(jié)構(gòu)對(duì)象的方法通過(guò)將樹(shù)形對(duì)象序列化為盡可能小的有結(jié)構(gòu)的字符串,并能從這個(gè)結(jié)構(gòu)化的字符串反序列化為樹(shù)形對(duì)象的技術(shù)來(lái)解決問(wèn)題,由于網(wǎng)絡(luò)傳遞的是字符串?dāng)?shù)據(jù),所以能充分利用壓縮技術(shù)的優(yōu)勢(shì),進(jìn)一步將網(wǎng)絡(luò)傳遞數(shù)據(jù)量減到最小,有效的解決了樹(shù)形對(duì)象在網(wǎng)絡(luò)上的傳遞效率。文檔編號(hào)G06F17/30GK101876990SQ20091023691公開(kāi)日2010年11月3日申請(qǐng)日期2009年10月27日優(yōu)先權(quán)日2009年10月27日發(fā)明者李充蒲申請(qǐng)人:用友軟件股份有限公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1