3 回答

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊
如果您將記錄列表作為列表,而不是作為 json 字符串,則可以調(diào)用
def id = YourResponse.Result.find{it.Amount==97.41 && it.CreatedDate=="10/17/2018"}
它將返回與您的搜索條件匹配的第一個(gè)找到的結(jié)果。如果您使用相同的閉包調(diào)用 findAll 而不是 find ,您將獲得所有匹配項(xiàng)的列表。

TA貢獻(xiàn)1810條經(jīng)驗(yàn) 獲得超4個(gè)贊
解決方案:
int i = response.path("Result.find{it.Amount.toDouble()==293.51 && it.CreatedDate=='10/26/2018'}.Id");
我需要在我的查詢(xún)中添加“toDouble()”。it.Amount.toDouble()==293.51,不是 it.Amount==293.51。添加 toDouble() 后,查詢(xún)按預(yù)期工作。

TA貢獻(xiàn)1993條經(jīng)驗(yàn) 獲得超6個(gè)贊
很難判斷您是否已經(jīng)解析了 JSON,因此我也包含了代碼來(lái)執(zhí)行此操作。這是普通的 Groovy,而不是特定于 Rest Assured。
import groovy.json.JsonSlurper
def text = '''
{
"StatusCode": 200,
"Result": [
{
"Id": 15015600,
"Amount": 97.41,
"CreatedDate": "10/17/2018",
},
{
"Id": 15015602,
"Amount": 682.11,
"CreatedDate": "10/17/2018",
}
]
}'''
def json = new JsonSlurper().parseText(text)
assert json.Result.find{ it.Amount == 97.41 && it.CreatedDate == '10/17/2018' }.Id == 15015600
添加回答
舉報(bào)