Groovy 请放心,仅从响应主体获取映射值
假设我调用了一个RESTful服务,它在响应体中返回这个Groovy 请放心,仅从响应主体获取映射值,groovy,rest-assured,rest-assured-jsonpath,Groovy,Rest Assured,Rest Assured Jsonpath,假设我调用了一个RESTful服务,它在响应体中返回这个 [ { "key": "Reason1 key", "values": { "en": "Reason1 English translation", "es": "Reason1 Spanish translation" } }, { "key": "Reason2 key", "values": { "en": "Reason2 English tr
[
{
"key": "Reason1 key",
"values": {
"en": "Reason1 English translation",
"es": "Reason1 Spanish translation"
}
},
{
"key": "Reason2 key",
"values": {
"en": "Reason2 English translation",
"es": "Reason2 Spanish translation"
}
}
]
我只需要获取映射键为“en”的值。
所以我希望过滤后的结果是这样的
[“Reason1英语翻译”、“Reason2英语翻译”]
或
{“推理1英语翻译”、“推理2英语翻译”}
我尝试了下一个代码,但仍然没有完成
response.then().body("findAll { it }.collect { it.values }", hasItems("Reason1 English translation", "Reason2 English translation"))
它回来了
[{en=Reason1英语翻译,es=Reason1西班牙语翻译},{en=Reason2英语翻译,es=Reason2西班牙语翻译}]
那么,我如何才能只获得与“en”相等的映射键条件相匹配的映射值呢?更改为…body(“findAll{it}.collect{it.values.en}”
添加en
以获取en
节点,而不是整个值
节点。非常简单:)我将其作为带有键和值的映射来处理,所以我尝试收集{it.values.key},这就是为什么它对我失败的原因,但现在它只处理JSON而不是Java对象。(谢谢)