新四季網

一種報文格式轉換方法和系統與流程

2023-10-31 11:58:02 1


本發明涉及網際網路通訊領域,特別涉及一種報文格式轉換方法和系統。



背景技術:

json是一種輕量級數據交換格式,很容易為人讀寫且易於機器解析和生成,它完全獨立於語言,近幾年越來越受開發者的青睞,隨著rest風格的流行,越來越多的api接口都開始採用json作為其參數格式。目前有http請求使用key=value格式,但在服務端api的參數格式是json,因此每次進行數據交換時都需要將key=value格式轉換為json格式,工作量大且效率較低。



技術實現要素:

本發明提供了一種報文格式轉換方法和系統,解決了以上所述的技術問題。

本發明解決上述技術問題的技術方案如下:

依據本發明的一個方面,提供了一種報文格式轉換方法,包括以下步驟:

步驟1,獲取http請求數據,所述http請求數據包括至少一個參數名和所述參數名對應的參數值;

步驟2,獲取與所述http請求數據對應的json配置模板,所述json配置模板包括所述參數名;

步驟3,對所述http請求數據進行解析,提取http請求數據中所有的參數名和對應的參數值;

步驟4,將所述參數值填寫到所述json配置模板的對應位置,生成json格式的請求數據。

本發明的有益效果是:本發明的報文格式轉換方法通過預先建立的json配置模版,自動將http請求數據轉換為json格式的請求數據,不僅無需人工參與,轉換速度快,轉換效率高,而且可以根據用戶需要對json配置模版的參數個數和參數名實現動態配置。

在上述技術方案的基礎上,本發明還可以做如下改進。

進一步,步驟1中所述http請求數據為key=value格式的請求數據;步驟2中所述json配置模板還包括與所述參數名對應的預設字符串,所述預設字符串為對所述參數名採用預設格式變換後生成的字符串。

進一步,所述步驟3具體包括:

步驟301,根據所述http請求數據生成map對象,將http請求數據中的參數名作為map對象的鍵,對應的參數值作為所述鍵對應的鍵值,所述鍵和鍵值形成鍵值對,其中map對象中的鍵為string類型,鍵值為object類型;

步驟302,遍歷map對象中的所有鍵值對,根據鍵值對中的鍵生成變量名,根據鍵值生成變量名對應的變量值,所述變量名和所述變量值形成對應關係表,所述變量名與json配置模板中參數名對應的預設字符串一致。

進一步,所述步驟4具體包括:

s401,將所述json配置模板作為原始串,獲取原始串中的預設字符串,並查詢所述對應關係表,獲得與所述預設字符串一致的變量名以及所述變量名對應的變量值;

s402,利用string的replaceall方法,將所述預設字符串替換為對應的變量值,並生成json格式的請求數據。

採用上述進一步方案的有益效果是:本進一步技術方案中,通過map方法和string的replaceall方法,可以自動將json配置模板中的預設字符串替換為對應的變量值,不僅轉換速度快,轉換效率高,而且代碼編寫簡單。

進一步,所述步驟401中,若在所述對應關係表中查詢不到與所述預設字符串一致的變量名,則步驟402中,將所述預設字符串置為空。

採用上述進一步方案的有益效果是:本進一步技術方案中,將沒有匹配到變量名的預設字符串置為空,不僅符合json的數據格式,而且利於後續步驟進行數據調用。

依據本發明的另一方面,還提供了一種報文格式轉換系統,包括第一獲取模塊、第二獲取模塊、解析模塊和生成模塊,

所述第一獲取模塊,用於獲取http請求數據,所述http請求數據包括至少一個參數名和所述參數名對應的參數值;

所述第二獲取模塊,用於獲取與所述http請求數據對應的json配置模板,所述json配置模板包括所述參數名;

所述解析模塊,用於對所述http請求數據進行解析,提取http請求數據中所有的參數名和對應的參數值;

所述生成模塊,用於將所述參數值填寫到所述json配置模板的對應位置,生成json格式的請求數據。

本發明的有益效果是:本發明的報文格式轉換系統通過預先建立的json配置模版,自動將http請求數據轉換為json格式的請求數據,不僅無需人工參與,轉換速度快,轉換效率高,而且可以根據用戶需要對json配置模版的參數個數和參數名實現動態配置。

進一步,所述http請求數據為key=value格式的請求數據;所述json配置模板包括參數名和參數名對應的預設字符串,所述預設字符串為對所述參數名採用預設格式變換後生成的字符串。

進一步,所述解析模塊包括:

第一解析單元,用於根據所述http請求數據生成map對象,將http請求數據中的參數名作為map對象的鍵,對應的參數值作為所述鍵對應的鍵值,所述鍵和鍵值形成鍵值對,其中map對象中的鍵為string類型,鍵值為object類型;

第二解析單元,用於遍歷map對象中的所有鍵值對,根據鍵值對中的鍵生成變量名,根據鍵值生成變量名對應的變量值,所述變量名和所述變量值形成對應關係表,所述變量名與json配置模板中參數名對應的預設字符串一致。

進一步,所述生成模塊具體用於將所述json配置模板作為原始串,找到原始串中的預設字符串,並查詢所述對應關係表,獲得與所述預設字符串一致的變量名以及所述變量名對應的變量值;並利用string的replaceall方法,將所述預設字符串替換為對應的變量值,並生成json格式的請求數據。

採用上述進一步方案的有益效果是:本進一步技術方案中,通過map方法和string的replaceall方法,可以自動將json配置模板中的預設字符串替換為對應的變量值,不僅轉換速度快,轉換效率高,而且代碼編寫簡單。

進一步,所述生成模塊還用於若在所述對應關係表中查詢不到與所述預設字符串一致的變量名,則將所述預設字符串置為空。

採用上述進一步方案的有益效果是:本進一步技術方案中,所述生成模塊將沒有匹配到變量名的預設字符串置為空,不僅符合json的數據格式,而且利於後續步驟進行數據調用。

附圖說明

圖1為本發明一實施例提供的報文格式轉換方法的流程示意圖;

圖2為本發明另一實施例提供的報文格式轉換系統的結構示意圖;

圖3為本發明另一實施例提供的報文格式轉換系統的結構示意圖。

具體實施方式

以下結合附圖對本發明的原理和特徵進行描述,所舉實例只用於解釋本發明,並非用於限定本發明的範圍。

圖1為本發明一實施例提供的報文格式轉換方法的流程示意圖,如圖1所示,所述報文格式轉換方法包括以下步驟:

步驟1,獲取http請求數據,所述http請求數據包括至少一個參數名和所述參數名對應的參數值;

步驟2,獲取與所述http請求數據對應的json配置模板,所述json配置模板包括所述參數名;

步驟3,對所述http請求數據進行解析,提取http請求數據中所有的參數名和對應的參數值;

步驟4,將所述參數值填寫到所述json配置模板的對應位置,生成json格式的請求數據。

本實施例的報文格式轉換方法通過預先建立的json配置模版,自動將http請求數據轉換為json格式的請求數據,不僅無需人工參與,轉換速度快,轉換效率高,而且可以根據用戶需要對json配置模版的參數個數和參數名實現動態配置。

作為本發明的一個優選實施例,步驟1中所述http請求數據為key=value格式的請求數據;步驟2中所述json配置模板還包括與所述參數名對應的預設字符串,所述預設字符串為對所述參數名採用預設格式變換後生成的字符串。該實施例中,所述步驟3具體包括:

步驟301,根據所述http請求數據生成map對象,將http請求數據中的參數名作為map對象的鍵,對應的參數值作為所述鍵對應的鍵值,所述鍵和鍵值形成鍵值對,其中map對象中的鍵為string類型,鍵值為object類型;

步驟302,遍歷map對象中的所有鍵值對,根據鍵值對中的鍵生成變量名,根據鍵值生成變量名對應的變量值,所述變量名和所述變量值形成對應關係表,所述變量名與json配置模板中參數名對應的預設字符串一致。

上述優選實施例中,所述步驟4具體包括:

s401,將所述json配置模板作為原始串,獲取原始串中的預設字符串,並查詢所述對應關係表,獲得與所述預設字符串一致的變量名以及所述變量名對應的變量值;

s402,利用string的replaceall方法,將所述預設字符串替換為對應的變量值,並生成json格式的請求數據。

上述優選實施例通過map方法和string的replaceall方法,可以自動將json配置模板中的預設字符串替換為對應的變量值,不僅轉換速度快,轉換效率高,而且代碼編寫簡單。

以下通過一個具體實施例,對上述過程進行描述。在該具體實施例中,可以通過圖形化界面顯示每個步驟的進程,因此操作更加簡單。

步驟1中,獲取的http請求數據的地址為:

http://ip:port/path/method

channel_id=119&route_key=name&route_value=200&login_no=10102,

上述http請求數據中包含四個參數名,分別為channel_id、route_key、route_value和login_no,對應的參數值分別為119、name、200和10102。

步驟2中,對應的json配置模板為:

上述json配置模板中,包括五個參數名,分別為channel_id、route_key、route_value、login_no、login_ip,對應的預設字符串分別為:${channel_id}、${route_key}、${route_value}、${login_no}、${login_ip},即使用${參數名}的格式形成對應的預設字符串。

步驟3,根據所述http請求數據生成map對象,具體為:

map

{channel_id=119,route_key=name,route_value=200,login_no=10102};

然後遍歷map對象中的所有鍵值對,形成以下對應關係表:

(1)變量名=${channel_id},變量值=119

(2)變量名=${route_key},變量值=name

(3)變量名=${route_value},變量值=200

(4)變量名=${login_no},變量值=10102。

步驟4,通過將json配置模板中的${參數名}與變量名相匹配,從而將json模板中對應的預設字符串替換為變量值,若json配置模板中的${參數名}沒有匹配到變量名,則將所述預設字符串置為空,從而得到以下json格式的請求數據:

圖2為本發明另一實施例提供的報文格式轉換系統的結構示意圖,如圖2所示,所述報文格式轉換系統包括第一獲取模塊、第二獲取模塊、解析模塊和生成模塊,

所述第一獲取模塊,用於獲取http請求數據,所述http請求數據包括至少一個參數名和所述參數名對應的參數值;

所述第二獲取模塊,用於獲取與所述http請求數據對應的json配置模板,所述json配置模板包括所述參數名;

所述解析模塊,用於對所述http請求數據進行解析,提取http請求數據中所有的參數名和對應的參數值;

所述生成模塊,用於將所述參數值填寫到所述json配置模板的對應位置,生成json格式的請求數據。

本實施例的報文格式轉換系統通過預先建立的json配置模版,自動將http請求數據轉換為json格式的請求數據,不僅無需人工參與,轉換速度快,轉換效率高,而且可以根據用戶需要對json配置模版的參數個數和參數名實現動態配置。

作為本發明的優選實施例中,所述http請求數據為key=value格式的請求數據;所述json配置模板還包括與所述參數名對應的預設字符串,所述預設字符串為對所述參數名採用預設格式變換後生成的字符串。該優選實施例中,所述解析模塊包括第一解析單元和第二解析單元,如圖3所示,

第一解析單元,用於根據所述http請求數據生成map對象,將http請求數據中的參數名作為map對象的鍵,對應的參數值作為所述鍵對應的鍵值,所述鍵和鍵值形成鍵值對,其中map對象中的鍵為string類型,鍵值為object類型;

第二解析單元,用於遍歷map對象中的所有鍵值對,根據鍵值對中的鍵生成變量名,根據鍵值生成變量名對應的變量值,所述變量名和所述變量值形成對應關係表,所述變量名與json配置模板中參數名對應的預設字符串一致。該優選實施例中,所述生成模塊具體用於將所述json配置模板作為原始串,找到原始串中的預設字符串,並查詢所述對應關係表,獲得與所述預設字符串一致的變量名以及所述變量名對應的變量值;並利用string的replaceall方法,將所述預設字符串替換為對應的變量值,並生成json格式的請求數據。所述優選實施例通過map方法和string的replaceall方法,可以自動將json配置模板中的預設字符串替換為對應的變量值,不僅轉換速度快,轉換效率高,而且代碼編寫簡單。

在另一優選實施例中,所述生成模塊還用於若在所述對應關係表中查詢不到與所述預設字符串一致的變量名,則將所述預設字符串置為空。該實施例中,所述生成模塊將沒有匹配到變量名的預設字符串置為空,不僅符合json的數據格式,而且利於後續步驟進行數據調用。

在本發明的描述中,需要理解的是,術語「第一」、「第二」僅用於描述目的,而不能理解為指示或暗示相對重要性或者隱含指明所指示的技術特徵的數量。由此,限定有「第一」、「第二」的特徵可以明示或者隱含地包括至少一個該特徵。在本發明的描述中,「多個」的含義是至少兩個,例如兩個,三個等,除非另有明確具體的限定。

在本說明書的描述中,參考術語「一個實施例」、「一些實施例」、「示例」、「具體示例」、或「一些示例」等的描述意指結合該實施例或示例描述的具體特徵、結構、材料或者特點包含於本發明的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不必須針對的是相同的實施例或示例。而且,描述的具體特徵、結構、材料或者特點可以在任一個或多個實施例或示例中以合適的方式結合。此外,在不相互矛盾的情況下,本領域的技術人員可以將本說明書中描述的不同實施例或示例以及不同實施例或示例的特徵進行結合和組合。

以上所述僅為本發明的較佳實施例,並不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀