gpt4 book ai didi

java - 在jsonpath中过滤时如何获取第一个元素?

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:23:09 32 4
gpt4 key购买 nike

所以我正在处理以下 json:

{
"id": "",
"owner": "some dude",
"metaData": {
"request": {
"ref": null,
"contacts":[
{
"email": null,
"name": null,
"contactType": "R"
},
{
"email": null,
"name": "Dante",
"contactType": "S"
}
]
}
}
}

我想检索联系人的 name 类型为 S 并且只有返回的第一个。

将 jsonpath 与此路径一起使用 "$..contacts[?(@.contactType == 'S')].name" 始终返回字符串数组,因为过滤操作始终将结果返回为数组。

所以我尝试了 "$..contacts[?(@.contactType == 'S')].name[0]""$..contacts[?(@ .contactType == 'S')][0].name" 但没有运气。这些路径返回空结果。

所以我的问题是,在 jsonpath 中使用过滤器时,有没有办法只获取第一个元素。我目前正在使用 jayway jsonpath v2.2.0。

最佳答案

我找到的最快的解决方案就是将它与列表进行比较,所以在您的场景中是这样的:

.andExpect(jsonPath("$..contacts[?(@.contactType == 'S')].name", equalTo(Arrays.asList("Dante"))))

(假设您正在尝试比较测试中的某些结果)

关于java - 在jsonpath中过滤时如何获取第一个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41529564/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com