假设我有以下Json响应
[
{
id: 1,
name: "John",
password: "JohnsPassword54",
},
{
id: 2,
name: "David",
password: "DavidsPassword24",
}
]
然后,如何使用名称David提取数组以进行进一步验证?
e.g。我想说如果name == David然后保存id
答案 0 :(得分:7)
干得好:)掌握Json-Path是充分利用空手道的关键!
只是为了演示,这是另一个选项,使用get
关键字从返回的数组中获取第一个元素,因为Json-Path通配符搜索总是返回一个数组:
* def response =
"""
[
{
id: 1,
name: "John",
password: "JohnsPassword54"
},
{
id: 2,
name: "David",
password: "DavidsPassword24"
}
]
"""
* def userId = get[0] response $[?(@.name == 'David')].id
* match userId == 2
答案 1 :(得分:2)
我在Json表达式评估中找到了解决方案 -
def user = $..[?(@.name == 'David')]
然后我可以使用以下内容 -
def userId = user[0].id