中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在Katalon Studio中解析JSON響應

發布時間:2020-08-11 17:55:58 來源:ITPUB博客 閱讀:184 作者:Tybyq 欄目:編程語言

JSON響應示例

假設我們有以下JSON響應,并且我們想要解析和檢索其數據:

{
  “menu”:{
    “id”:“文件”,
    “工具”:{
      “行動”:[
        {
          “id”:“新”,
          “標題”:“新文件”
        },
        {
          “id”:“開放”,
          “標題”:“打開文件”
        },
        {
          “id”:“關閉”,
          “標題”:“關閉文件”
        }
      ]
      “錯誤”:[]
    }
  }
}

JsonSlurper

我們使用這個Groovy助手類來解析JSON字符串。 我們需要創建一個JsonSlurper的新實例并調用JsonSlurper.parseText方法。 示例代碼:

導入 groovy。杰森。JsonSlurper

String  jsonString  =  '''{“menu”:{
“id”:“文件”,
“工具”:{
“行動”:[
{“id”:“new”,“title”:“New File”},
{“id”:“打開”,“標題”:“打開文件”},
{“id”:“關閉”,“標題”:“關閉文件”}
]
“錯誤”:[]
}}} ''”
JsonSlurper  slurper  =  新的 JsonSlurper()
映射 parsedJson  =  slurper。parseText(jsonString)
導入 groovy。杰森。JsonSlurper

String  jsonString  =  '''{“menu”:{
“id”:“文件”,
“工具”:{
“行動”:[
{“id”:“new”,“title”:“New File”},
{“id”:“打開”,“標題”:“打開文件”},
{“id”:“關閉”,“標題”:“關閉文件”}
]
“錯誤”:[]
}}} ''”
JsonSlurper  slurper  =  新的 JsonSlurper()
映射 parsedJson  =  slurper。parseText(jsonString)

解析后的JSON響應現在存儲在一個名為 parsedJson 的變量中 (在我們的例子中,它是Map數據結構,但有時它可能是其他的)。

JsonSlurper還提供了幾個JsonSlurper。 解析 重載方法,如果您的JSON輸入是File,Reader,InputStream,String以外的URL,則可以使用這些方法。 有關詳細信息,請參閱 JsonSlurper文檔。

獲得關鍵價值

假設您想 從上面的JSON響應中 獲取 id JSON是一個結構化文檔,因此您可以使用其絕對路徑獲取任何元素。 看這個例子:

String  idValue  =  parsedJson。菜單。ID
String  idValue2  =  parsedJson。得到(“菜單”)。得到(“id”)

如您所見,有兩種方法可以獲得它。 一種是使用點表示法(。)訪問Map對象。 另一種方法是使用Map,List和Set中的get方法,就像在Java中一樣。

基本上, parsedJson 變量是 Map <String,Map <Object,Object?的 一種類型 然后,要獲取內部Map,請調用parsedJson。 get (“menu”) - 因為“menu”是String鍵。 此方法返回內部Map,您可以在其上調用其他get方法,直到找到密鑰。

驗證JSON中是否存在密鑰

如果要驗證JSON響應中是否存在選定的密鑰,可以使用類似的代碼,如下所示:

進口 com。公里。卡塔隆。核心。util。KeywordUtil

String  getSelectedKey  =  parsedJson。菜單。ID

if(getSelectedKey  ==  null){
KeywordUtil。markFailed(“Key not present”)
}
這 是 一個 簡單的 檢查 為 空 -  如果 在 給定的 關鍵 是 沒有 找到,空 時 返回。但是, 有 是 一個 特殊的 情況下 ,當 這個 代碼 贏得“T工作,也就是說,如果關鍵的‘ID’有null值在你的JSON。對于這種情況,您應該使用更強大的代碼:
boolean  isKeyPresent  =  parsedJson。得到(“菜單”)。keySet()。包含(“id”)

if(!isKeyPresent){
KeywordUtil。markFailed(“Key not present”)
}

您從“菜單”對象中獲取所有鍵,然后檢查它是否包含您要查找的鍵。

獲取數組元素

您的JSON響應也可能包含數組。 與Java或Groovy中的任何數組一樣,您可以使用 arrayName [index] 訪問數組元素

例如,我們可以獲得“actions”數組中第一個對象的“title”值,如下所示:

String  idValue  =  parsedJson。菜單。工具。行動 [ 0 ]。標題
String  idValue2  =  parsedJson。得到(“菜單”)。得到(“工具”)。得到(“行動”)。得到(0)。得(“標題”)

在此示例中,我們訪問索引為0的項,即數組中的第一項(索引從零開始)。

基于某種條件獲取數組元素

更常見的情況是,您希望根據某些特定條件獲取確切的數組元素。 例如,您獲得“id”為“Open”的對象的“title”值。 你可以這樣做:

def  array1  =  parsedJson。菜單。工具。行動

字符串 onlickValue1  =  “”

for(def  member:array1){
如果(構件。ID  ==  '打開'){
onlickValue1  =  成員。標題
打破
}
}

在這種情況下,我使用了for-each循環。 此循環檢查數組 array1 中的每個項目, 直到滿足條件。 如果是這樣, 則將onlickValue1 指定給項目的標題。

JSON數據類型

JSON格式支持一些數據類型,如String,number,Boolean和null。 如果您不確定數據類型是什么,可以使用關鍵字 def

def  myVar  =  '從json獲取值'。

根據經驗,String值用引號括起來,數字不加引號(浮點也可能存在),布爾值為true或false。 但是當你不確定它的類型時,使用def初始化變量總是一個不錯的選擇。

結論

本教程 提供了一些在Katalon Studio中使用JSON字符串的基本最佳實踐。 JSON是API / Web服務返回的最常見格式。 當您執行 API測試時 您可能必須處理JSON響應。 希望這些基本最佳實踐對您的API測試很有用。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

荃湾区| 永登县| 巴林右旗| 乐安县| 鹰潭市| 伊通| 繁昌县| 枣阳市| 运城市| 和田市| 名山县| 全南县| 稻城县| 博湖县| 乌兰察布市| 宁波市| 阿瓦提县| 介休市| 图们市| 马尔康县| 沙湾县| 白玉县| 江永县| 宁远县| 孙吴县| 太仓市| 特克斯县| 越西县| 远安县| 静安区| 乌鲁木齐市| 荃湾区| 虞城县| 鸡西市| 扎囊县| 乾安县| 荥经县| 阿尔山市| 丰都县| 崇明县| 阳新县|