jsonpath - JSONPath - 如果数组包含字符串,则过滤表达式以打印字段
问题描述
我有以下 JSON,并且正在尝试编写一个 JSON 路径表达式,当我的 id 为“123456789”或“987654321”时,它将返回 isbn 编号。我尝试了以下方法,但这没有用。谁能告诉我我做错了什么。提前致谢
JSON 路径表达式
$.books[?(@.ids== '123456789' )].isbnNumber
JSON
{
"books": [{
"title": "10",
"isbnNumber": "621197725636",
"ids": [
"123456789",
"987654321"
]
}]
}
解决方案
(更传统的)JSONPath 实现贴近(r)Goessner 的参考规范不提供方便的功能in
,如 JayWay 的 JSONPath 等扩展实现中可用的功能。
使用 Gatling 的 JSONPath,如果相关 Id 的位置是固定的,我们可以做的一件事是直接访问它们各自的索引以进行比较:
$.books[?(@.ids[0] == "123456789" || @.ids[1] == "987654321")].isbnNumber
这将为您提供示例所需的结果;但是,有些书只有两个索引之一,或者它们的 Id 比较显示在不同的位置上,它不起作用。
推荐阅读
- linux - 在 Linux 上执行自建的 ghostscript 二进制文件的问题
- python - 为实例设置类属性就是为所有实例设置它
- c# - 使用守护程序应用程序发送邮件
- windows - Windows Media 基础:IMFSinkWriter WriteSample API 返回错误 sampleduration is not set
- python - requests.exceptions.HTTPError: 415 Client Error Unsupported Media Type when using python zeep
- pdf - 是否可以从 Word 文档生成 XFDF 文件?
- python - Opencv imread() 在 while 循环中突然停止工作
- ffmpeg - ffprobe 和 ffmpeg 用于关键帧识别的结果不一致
- python - 使用 Pyinstaller 转换为 exe.FileNotFoundError: 'C:\\Users\\{ [8240] Username}\\\_MEI98802\\astor\\VERSION'
- sql - 数据库中的 JOIN 是否会导致应用程序中的代码重复?