亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種客戶端報文轉(zhuǎn)換方法

文檔序號:7642423閱讀:226來源:國知局
專利名稱:一種客戶端報文轉(zhuǎn)換方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信領(lǐng)域,尤其涉及一種客戶端的報文轉(zhuǎn)換方法。
背景技術(shù)
一般情況下,操作者通過客戶端辦理業(yè)務(wù)時,客戶端接收操作者的請求,處理過程則由后臺服務(wù)器完成,這對服務(wù)器的運算能力要求較高。若想降低服務(wù)器的運算壓力,則需要客戶端來完成部分數(shù)據(jù)處理任務(wù)。在目前的B/S架構(gòu)中,客戶端(瀏覽器宿主環(huán)境下)在不安裝其它插件的前提下, 原生支持的公共程序語言是Javascript (以下簡稱JS),JS中對象以JSON (JavaScript Object Notation)的形式實例化和操作。服務(wù)器端Java語言環(huán)境下,對象一般以POJO (Plain Old Java Object)形式存在。服務(wù)器端和客戶端數(shù)據(jù)的傳輸格式存在多種,現(xiàn)在比較流行的公共標準格式是以XML的格式來傳輸數(shù)據(jù),從而便于各種環(huán)境下以此公共的格式標準來交互數(shù)據(jù)。但是若客戶端接收XML格式數(shù)據(jù),并采用XML格式處理相關(guān)業(yè)務(wù)時,則會增加操作者的應(yīng)用難度,客戶端不能直觀的向操作者顯示業(yè)務(wù)辦理的內(nèi)容及過程。此外,現(xiàn)有技術(shù)中還存在以下兩點缺陷
1、當前技術(shù)不能很好的解決服務(wù)器端對象和客戶端JS腳本環(huán)境下對象的無損轉(zhuǎn)換和傳輸問題。2、客戶端和服務(wù)器端為了遵循公共的標準,不分外部接口暴露還是內(nèi)部層級之間的調(diào)用,全部采用XML數(shù)據(jù)格式來傳遞數(shù)據(jù),由于XML格式本身冗余元數(shù)據(jù)描述,造成傳輸報文文件容量增大,不必要的網(wǎng)絡(luò)帶寬占用。且服務(wù)器端的XML數(shù)據(jù)傳輸?shù)娇蛻舳藭r,不同種類的瀏覽器對XML轉(zhuǎn)換成的客戶端對象的操作過程,XML對象暴露的API不一致,且操作復(fù)雜,沒有一個統(tǒng)一,易操作的API來操作這些對象。且不能利用各瀏覽器原生通用的JSON 對象形式來操作,運行時效率也無法得到保證。XML (Extensible Markup Language)即可擴展標記語言,它與 HTML—樣,都是 SGML (Standard Generalized Markup Language,標準通用標記語言)。Xml 是 Internet 環(huán)境中跨平臺的,依賴于內(nèi)容的技術(shù),是當前處理結(jié)構(gòu)化文檔信息的有力工具。擴展標記語言 XML是一種簡單的數(shù)據(jù)存儲語言,使用一系列簡單的標記描述數(shù)據(jù),而這些標記可以用方便的方式建立,雖然XML占用的空間比二進制數(shù)據(jù)要占用更多的空間,但XML極其簡單易于掌握和使用。JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式。易于人閱讀和編寫,同時也易于機器解析和生成。它基于Javakript (Standard ECMA-262 3rd Edition - December 1999)的一個子集。JSON采用完全獨立于語言的文本格式,但是也使用了類似于C語言家族的習慣(包括C,C++, C#, Java, JavaScript, Perl, Python等)。 這些特性使JSON成為理想的數(shù)據(jù)交換語言
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種將XML報文轉(zhuǎn)換為JSON報文的方法,方便客戶端處理業(yè)務(wù)。本發(fā)明的技術(shù)方案如下,一種客戶端報文轉(zhuǎn)換方法,步驟如下, 第一步,客戶端接收服務(wù)器發(fā)送來的XML報文模板;
第二步,所述客戶端將所述XML報文模板轉(zhuǎn)換為至少一個Json類報文模板; 第三步,所述客戶端將所述Json類報文模板實例化為Json類報文模板對象,并將所述 Json類報文模板對象以及該Json類報文模板對象對應(yīng)的鍵值保存至哈希表內(nèi); 第四步,所述客戶端將外部輸入的業(yè)務(wù)信息塞值到所述Json類報文模板對象內(nèi); 第五步,所述客戶端將每個Json類報文模板對象轉(zhuǎn)換為Json類字符串,發(fā)送至所述服務(wù)器。進一步地,所述第二步中,所述客戶端先根據(jù)所述XML報文模板的節(jié)點邏輯關(guān)系拆分所述XML報文模板,再通過快速Web應(yīng)用開發(fā)平臺將拆分后的XML報文模板轉(zhuǎn)換為 Json類報文模板。 進一步地,所述第四步中,所述客戶端按照以下步驟塞值, 步驟Al,所述客戶端接收外部輸入的節(jié)點信息和業(yè)務(wù)信息;
步驟A2,所述客戶端根據(jù)外部輸入的節(jié)點信息,利用客戶端內(nèi)保存的節(jié)點邏輯關(guān)系,計算其它Json類報文模板對象的節(jié)點信息;
步驟A3,所述客戶端調(diào)用哈希表,根據(jù)鍵值查找節(jié)點相應(yīng)的Json類報文模板對象,并將接收到的業(yè)務(wù)信息塞值到所述Json類報文模板對象內(nèi)。進一步地,所述步驟A2中,所述客戶端通過遞歸調(diào)用的方式計算其它Json類報文模板對象的節(jié)點信息。進一步地,所述第五步中,所述客戶端按照以下步驟將Json類報文模板對象轉(zhuǎn)換為Json字符串,
步驟Bi,判斷Json類報文模板對象的基本類型若基本類型為object,則執(zhí)行步驟 B2,否則直接執(zhí)行步驟B3;
步驟B2,通過javascript的數(shù)據(jù)變量類型函數(shù)判斷基本類型為object的Json類報文模板對象的具體類型;
步驟B3,按照不同類型對應(yīng)的數(shù)據(jù)轉(zhuǎn)換邏輯將該類型的Json類報文模板對象轉(zhuǎn)換為 Json字符串。本發(fā)明的有益效果是
1.降低了以XML格式進行網(wǎng)絡(luò)傳輸時,所造成的冗余數(shù)據(jù)對網(wǎng)絡(luò)流量的占用,提高了傳輸速度,以及B/S系統(tǒng)的實時性,進而提升了用戶體驗。2.提供一種XML格式和JSON格式間的靈活轉(zhuǎn)換方法,從而使得系統(tǒng)可以對內(nèi)部或外部調(diào)用時所要求的數(shù)據(jù)格式進行靈活的序列化轉(zhuǎn)換,從而可以提供對外的多種接口格式,適應(yīng)當前流行的大部分數(shù)據(jù)傳輸協(xié)議。3.將部分數(shù)據(jù)存儲和運算的任務(wù)轉(zhuǎn)移到客戶端來進行,適應(yīng)O時代客戶端主機性能不斷提升所引起的富客戶端運算方式的趨勢,降低服務(wù)器端運算壓力。


圖1為本發(fā)明客戶端報文轉(zhuǎn)換方法的流程示意圖2為本發(fā)明中客戶端對Json類報文模板對象塞值的流程示意圖。
具體實施例方式以下結(jié)合附圖對本發(fā)明的原理和特征進行描述,所舉實例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。一般情況下,操作者通過客戶端辦理業(yè)務(wù)時,客戶端接收操作者請求,處理過程則由后臺服務(wù)器完成,這就對服務(wù)器的運算能力要求較高,為了降低服務(wù)器的運算壓力,服務(wù)器可將部分數(shù)據(jù)存儲和運算的任務(wù)轉(zhuǎn)移到客戶端完成,但是如果客戶端直接通過XML格式進行業(yè)務(wù)處理,則增加了操作者的應(yīng)用難度,不能直觀的向操作者顯示業(yè)務(wù)辦理的內(nèi)容及過程。因此,本發(fā)明提供一種客戶端的報文轉(zhuǎn)換方法,如圖1所示,具體步驟如下。第一步,客戶端接收服務(wù)器發(fā)送來的XML報文模板。即服務(wù)器將部分數(shù)據(jù)存儲和數(shù)據(jù)運算任務(wù)對應(yīng)的XML報文模板發(fā)送到客戶端,要求客戶端完成這部分任務(wù)的處理工作。例如,服務(wù)器要求客戶端錄入某一人員的基本身份信息,則服務(wù)器將該該錄入身份信息的任務(wù)對應(yīng)的XML報文模板發(fā)送至客戶端。第二步,客戶端將XML報文模板轉(zhuǎn)換為至少一個Json類報文模板。第三步,客戶端將Json類報文模板實例化(在面向?qū)ο蟮木幊讨校ǔ0延妙悇?chuàng)建對象的過程稱為實例化)為Json類報文模板對象,并將Json類報文模板對象以及該Json 類報文模板對象對應(yīng)的鍵值保存至哈希表內(nèi)。這樣就可根據(jù)按鍵的鍵值直接調(diào)用被實例化的Json類報文模板對象。第四步,客戶端將外部輸入的業(yè)務(wù)信息塞值到Json類報文模板對象內(nèi)??蛻舳烁鶕?jù)服務(wù)器轉(zhuǎn)交的任務(wù)內(nèi)容進行塞值,也就說,此時外部操作者可以通過客戶端輸入待辦業(yè)務(wù)的業(yè)務(wù)信息,例如,操作者通過客戶端輸入人員的姓名、性別、證件號等身份信息,客戶端就可將這些信息塞到相應(yīng)節(jié)點的Json類報文模板對象內(nèi)。第五步,客戶端將每個Json類報文模板對象轉(zhuǎn)換為Json字符串,發(fā)送至服務(wù)器。 服務(wù)器將接收的Json字符串后,則將其轉(zhuǎn)換為XML格式再進一步處理。這就降低了以XML 格式進行網(wǎng)絡(luò)傳輸時造成的冗余數(shù)據(jù)對網(wǎng)絡(luò)流量的占用,提高了傳輸速度,以及B/S系統(tǒng)的實時性,進而提升了用戶體驗。本步驟的具體實現(xiàn)過程如下
步驟Bi,判斷Json類報文模板對象的基本類型,其中,基本類型可包括number、 ob ject、function、undef ined等若基本類型為ob ject,則執(zhí)行步驟B2,若為其他基本類型則直接執(zhí)行步驟B3。步驟B2,通過javascript的數(shù)據(jù)變量類型函數(shù)判斷基本類型為object的Json 類報文模板對象的具體類型。即進一步判斷Json類報文模板對象的具體類型([object Array]、[object RegExp]等),重新設(shè)定該對象的類型為array、regexp、object等類型中的哪一種。步驟B3,按照不同類型對應(yīng)的數(shù)據(jù)轉(zhuǎn)換邏輯將該類型的Json類報文模板對象轉(zhuǎn)換為Json字符串。下面簡單介紹2個典型類型的實現(xiàn)方式
如果具體類型是’ object’,對該’ object’里每個節(jié)點進行迭代直到是基本類型時 (有可能是各種基本類型),然后調(diào)用基本類型的原生轉(zhuǎn)換函數(shù)進行串的轉(zhuǎn)換,并塞至一個臨時的數(shù)組中,最后調(diào)用原生的數(shù)組轉(zhuǎn)換串的函數(shù),最終轉(zhuǎn)換成字符串。如果具體類型是’ array',通過循環(huán)該數(shù)組,然后對每個數(shù)組進行迭代直到是基本類型時(有可能是各種基本類型),然后調(diào)用基本類型的原生轉(zhuǎn)換函數(shù)進行串的轉(zhuǎn)換,并塞至一個臨時的數(shù)組中,最后調(diào)用原生的數(shù)組轉(zhuǎn)換串的函數(shù),最終轉(zhuǎn)換成字符串。上述第二步中,客戶端先根據(jù)XML報文模板的節(jié)點邏輯關(guān)系拆分XML報文模板,再通過快速 Web 應(yīng)用開發(fā)平臺(SWADP 平臺,Simple Web Application Develop Platform)將拆分后的XML報文模板轉(zhuǎn)換為Json類報文模板。因為每項任務(wù)對應(yīng)的XML報文模板都具有一定的結(jié)構(gòu),則客戶端接收到XML報文模板后,先依據(jù)報文結(jié)構(gòu)拆分該XML報文模板至最小報文單元,再將XML格式的最小報文單元轉(zhuǎn)換為Json格式。報文拆分的依據(jù)如下如果某項業(yè)務(wù)對應(yīng)的XML報文模板作為整體存在,不存在節(jié)點邏輯關(guān)系,即不存在父節(jié)點與子節(jié)點之間的添加問題,則該XML報文模板不需要拆分;如果報文結(jié)構(gòu)中存在某個子節(jié)點需要在業(yè)務(wù)處理流程中單獨被實例化和塞值, 然后再添加到父級節(jié)點中的情況,則需要拆分該報文結(jié)構(gòu)為多個節(jié)點。如圖2所示,第四步中,客戶端按照以下步驟塞值
步驟Al,客戶端接收外部輸入的節(jié)點信息和業(yè)務(wù)信息。因為客戶端內(nèi)保存有各個節(jié)點間的邏輯關(guān)系,故在本步驟中,操作者最少可以只輸入一個節(jié)點信息,同時可以輸入多個需要塞值到節(jié)點的業(yè)務(wù)信息。步驟A2,客戶端根據(jù)操作者輸入的節(jié)點信息,利用節(jié)點間的邏輯關(guān)系,計算其它 Json類報文模板對象的節(jié)點信息。在本步驟中,客戶端可以通過遞歸調(diào)用的方式來計算其它Json類報文模板對象的節(jié)點信息。步驟A3,客戶端調(diào)用哈希表,根據(jù)鍵值查找節(jié)點相應(yīng)的Json類報文模板對象,并將接收到的業(yè)務(wù)信息塞值到所述Json類報文模板對象內(nèi)。在對外部輸入的業(yè)務(wù)信息進行塞值時,在確定每次用哪一個模板的時候,可以直接根據(jù)相應(yīng)的鍵值,對該模板對象進行實例化,實例化后的對象都是sitechjson對象。以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種客戶端報文轉(zhuǎn)換方法,其特征在于,第一步,客戶端接收服務(wù)器發(fā)送來的XML報文模板; 第二步,所述客戶端將所述XML報文模板轉(zhuǎn)換為至少一個Json類報文模板; 第三步,所述客戶端將所述Json類報文模板實例化為Json類報文模板對象,并將所述 Json類報文模板對象以及該Json類報文模板對象對應(yīng)的鍵值保存至哈希表內(nèi); 第四步,所述客戶端將外部輸入的業(yè)務(wù)信息塞值到所述Json類報文模板對象內(nèi); 第五步,所述客戶端將每個Json類報文模板對象轉(zhuǎn)換為Json字符串,發(fā)送至所述服務(wù)器。
2.按照權(quán)利要求1所述的客戶端報文轉(zhuǎn)換方法,其特征在于,所述第二步中,所述客戶端先根據(jù)所述XML報文模板的節(jié)點邏輯關(guān)系拆分所述XML報文模板,再通過快速Web應(yīng)用開發(fā)平臺將拆分后的XML報文模板轉(zhuǎn)換為Json類報文模板。
3.按照權(quán)利要求1所述的客戶端報文轉(zhuǎn)換方法,其特征在于, 所述第四步中,所述客戶端按照以下步驟塞值,步驟Al,所述客戶端接收外部輸入的節(jié)點信息和業(yè)務(wù)信息;步驟A2,所述客戶端根據(jù)外部輸入的節(jié)點信息,利用客戶端內(nèi)保存的節(jié)點邏輯關(guān)系,計算其它Json類報文模板對象的節(jié)點信息;步驟A3,所述客戶端調(diào)用哈希表,根據(jù)鍵值查找節(jié)點相應(yīng)的Json類報文模板對象,并將接收到的業(yè)務(wù)信息塞值到所述Json類報文模板對象內(nèi)。
4.按照權(quán)利要求3所述的客戶端報文轉(zhuǎn)換方法,其特征在于,所述步驟A2中,所述客戶端通過遞歸調(diào)用的方式計算其它Json類報文模板對象的節(jié)點信息。
5.按照權(quán)利要求1所述的客戶端報文轉(zhuǎn)換方法,其特征在于,所述第五步中,所述客戶端按照以下步驟將Json類報文模板對象轉(zhuǎn)換為Json字符串, 步驟Bi,判斷Json類報文模板對象的基本類型若基本類型為object,則執(zhí)行步驟 B2,否則直接執(zhí)行步驟B3;步驟B2,通過javascript的數(shù)據(jù)變量類型函數(shù)判斷基本類型為object的Json類報文模板對象的具體類型;步驟B3,按照不同類型對應(yīng)的數(shù)據(jù)轉(zhuǎn)換邏輯將該類型的Json類報文模板對象轉(zhuǎn)換為 Json字符串。
全文摘要
本發(fā)明提供一種客戶端報文轉(zhuǎn)換方法首先,客戶端接收服務(wù)器發(fā)送來的XML報文模板;其次,客戶端將XML報文模板轉(zhuǎn)換為至少一個Json類報文模板;接著,客戶端將Json類報文模板實例化為Json類報文模板對象,并將Json類報文模板對象以及該Json類報文模板對象對應(yīng)的鍵值保存至哈希表內(nèi);然后,客戶端將外部輸入的業(yè)務(wù)信息塞值到Json類報文模板對象內(nèi);最后,客戶端將每個Json類報文模板對象轉(zhuǎn)換為Json字符串發(fā)送至服務(wù)器。這樣就降低了以XML格式進行網(wǎng)絡(luò)傳輸時對網(wǎng)絡(luò)流量的占用,提高了傳輸速度。實現(xiàn)XML格式和JSON格式間的靈活轉(zhuǎn)換。此外,將部分數(shù)據(jù)存儲和運算的任務(wù)轉(zhuǎn)移到客戶端來進行,降低了服務(wù)器的運算壓力。
文檔編號H04L29/08GK102185901SQ20111009741
公開日2011年9月14日 申請日期2011年4月19日 優(yōu)先權(quán)日2011年4月19日
發(fā)明者湯鵬 申請人:北京神州數(shù)碼思特奇信息技術(shù)股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1