根据条件从响应中获取值,并将其存储到一个变量中



我想根据条件从响应中获取值,并将其存储到一个变量中。

在下面的JSON中,我希望在名称与我喜欢的内容匹配时存储值。是否有一种方法来实现这个使用空手道API?

{
"results": [
{
"name": "Sample1",
"email": "sample1@text.com",
"id": "U-123"
},
{
"name": "Sample2",
"email": "sample2@text.com",
"id": "U-456"
},
{
"name": "Sample3",
"email": "sample3@text.com",
"id": "U-789"
}
]
}

所以在阅读了评论之后,我的解释是"发现";即id,其中nameSample2。简单,只需使用filter()操作,参考文档:https://github.com/karatelabs/karate#jsonpath-filters

不使用过滤器,我使用JS数组find()方法作为下面一个非常简洁的例子:

* def response =
"""
{ "results": [
{ "name": "Sample1", "email": "sample1@text.com", "id": "U-123" },
{ "name": "Sample2", "email": "sample2@text.com", "id": "U-456" },
{ "name": "Sample3", "email": "sample3@text.com", "id": "U-789" }
]
}
"""
* def id = response.results.find(x => x.name == 'Sample2').id
* match id == 'U-456'

花点时间来理解它是如何工作的。如果需要的话,可以和懂JS的人谈谈。

最新更新