第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

在 JAVA 中循環(huán)遍歷 SerenityRest 響應(yīng)

在 JAVA 中循環(huán)遍歷 SerenityRest 響應(yīng)

飲歌長(zhǎng)嘯 2022-12-28 09:49:11
我正在嘗試從汽車對(duì)象中獲取所有模型的數(shù)量,這是 SerenityRest 響應(yīng)的一部分。Response response = SerenityRest.rest()        .contentType("application/json")        .when()        .get("/api/");if (response.statusCode() == 200) {   int numUniqueModels = response.body().path("cars.size()");  // 3}回復(fù):   "cars": {       "Acura": [           "ILX",           "MDX",           "TLX"       ],       "Audi": [           "A3",           "A4",           "A6",           "A7"       ],       "BMW": [           "x",           "y"       ]   }例如,response.body().path("cars.size()") = 3,但我需要 cars.Acura.size() + cars.Audi.size() + cars.BMW.size() 的總和來(lái)獲得所有模型。但是,我不知道響應(yīng)中是否會(huì)出現(xiàn) Acura、Audi 或 BMW 的確切名稱,因?yàn)檐囕v可能會(huì)動(dòng)態(tài)變化。為了解決這個(gè)問(wèn)題,我需要做一些循環(huán),其中:sum = 0; for (int i = 0; i < response.body().path("cars.size()"); i++) {   sum += response.body().path("cars.[i].size()");}總和應(yīng)該給出汽車模型的總數(shù) = 9。問(wèn)題是這個(gè)語(yǔ)法:path("cars.[i].size()") 不正確。正確的叫法是什么?
查看完整描述

1 回答

?
RISEBY

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊

如果您想放心地提出復(fù)雜的請(qǐng)求,則必須遵循此處描述的 synthax groovy gpath,如此處rest-assured doc所述:

請(qǐng)注意,JsonPath 實(shí)現(xiàn)使用Groovy 的 GPath語(yǔ)法,不要與 Jayway 的JsonPath實(shí)現(xiàn)混淆。

所以你必須玩一些 groovy synthax:

int total = JsonPath.from("{  "

              + " \"cars\": {\n"

              + "       \"Acura\": [\n"

              + "           \"ILX\",\n"

              + "           \"MDX\",\n"

              + "           \"TLX\"\n"

              + "       ],\n"

              + "       \"Audi\": [\n"

              + "           \"A3\",\n"

              + "           \"A4\",\n"

              + "           \"A6\",\n"

              + "           \"A7\"\n"

              + "       ],\n"

              + "       \"BMW\": [\n"

              + "           \"x\",\n"

              + "           \"y\"\n"

              + "       ]\n"

              + "   }"

              + "}")

        .getInt("cars.collect { it.value.size() }.sum()")

所以這個(gè)表達(dá)式應(yīng)該可以工作cars.collect { it.value.size() }.sum()。該collect方法就像函數(shù)式編程中的 map 方法。因此,您將集合carsHashMap映射到size()它的值,然后收集sum()!


編輯


所以你只需要做:


Response response = SerenityRest.rest()

        .contentType("application/json")

        .when()

        .get("/api/");

if (response.statusCode() == 200) {

   int numUniqueModels = response.body().path("cars.collect { it.value.size() }.sum()");  // 9

}


查看完整回答
反對(duì) 回復(fù) 2022-12-28
  • 1 回答
  • 0 關(guān)注
  • 91 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)