一種報文格式轉換方法和系統與流程
2023-10-31 11:58:02 2

本發明涉及網際網路通訊領域,特別涉及一種報文格式轉換方法和系統。
背景技術:
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的數據格式,而且利於後續步驟進行數據調用。
在本發明的描述中,需要理解的是,術語「第一」、「第二」僅用於描述目的,而不能理解為指示或暗示相對重要性或者隱含指明所指示的技術特徵的數量。由此,限定有「第一」、「第二」的特徵可以明示或者隱含地包括至少一個該特徵。在本發明的描述中,「多個」的含義是至少兩個,例如兩個,三個等,除非另有明確具體的限定。
在本說明書的描述中,參考術語「一個實施例」、「一些實施例」、「示例」、「具體示例」、或「一些示例」等的描述意指結合該實施例或示例描述的具體特徵、結構、材料或者特點包含於本發明的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不必須針對的是相同的實施例或示例。而且,描述的具體特徵、結構、材料或者特點可以在任一個或多個實施例或示例中以合適的方式結合。此外,在不相互矛盾的情況下,本領域的技術人員可以將本說明書中描述的不同實施例或示例以及不同實施例或示例的特徵進行結合和組合。
以上所述僅為本發明的較佳實施例,並不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。