JSONPath 查询和 JSONPath Builder
JSONPath Builder 是在创建 REST API 主动和性能监控工具以及 REST API 主动和性能应用程序监控 (APM) 组件时使用的辅助实用程序。该工具帮助用户选择他们想要监控的 JSON 元素,并为所选的 JSON 元素生成一个 JSONPath 查询。
JSONPath 查询可以采用两种样式书写,即括号表示法和点表示法,例如:
本主题介绍 JSONPath Builder 工具的工作流和支持的语法。
REST API 性能监控工具中的 JSONPath Builder
当您从监控工具库添加新的 REST API 性能监控工具时,
窗口将打开。此窗口包含两个相关部分,
和
,它们在
JSONPath Builder
工具中使用。
提供 REST API 性能监控工具名称、描述和超时值,然后按照以下步骤使用 JSONPath Builder 工具:
-
指定要获取性能指标的
端点。
-
(可选)使用
按钮添加自定义标头。
-
(可选)如果您需要禁止显示证书错误消息,请选择
。
-
(可选)选择
绕过向端点发送 REST API 凭据。此选项仅在 REST API 端点不需要身份验证即可访问时有效。
-
单击
按钮。如果 REST API URL 有效,则会打开 JSONPath Builder 窗口。在此窗口中,您可以选择要监控性能数据的数字字段。下图显示带有示例“儿童图书馆”数据的 JSONPath Builder 窗口:
-
单击
以在端点上运行测试。如果性能监控工具可以从 JSONPATH 端点值中提取数字结果,则可以保存监控工具并将其添加到性能监控工具库中。下图是一个 JSONPath 示例,该示例向使用 JSONPath Builder 构建的性能监控工具返回一个有效的数值:
REST API 主动监控工具中的 JSONPath Builder
当您从监控工具库添加新的 REST API 活动监控工具时,
窗口将打开。此窗口包含两个相关部分:
和
,其中包括
网格作为为监控工具添加脱机条件的方法。在选择放大镜按钮时,
网格会使用 JSONPath Builder。
在使用 REST API 主动监控工具时,您可以定义多个 JSONPath 查询来评估监控工具的脱机状态。此外,与性能监控工具不同,主动监控工具支持针对数字、布尔和字符串类型的变量验证脱机条件。
在 JSONPath Builder 中选择 JSON 元素后,JSONPath 查询网格会自动检测元素的类型,并将其输入到 JSONPath 查询网格的
列中。
提供 REST API 主动监控工具名称、描述和超时值,然后按照以下步骤使用 JSONPath Builder 工具:
-
指定要获取性能指标的
端点。
-
(可选)使用
按钮添加自定义标头。
-
(可选)如果您需要禁止显示证书错误消息,请选择
。
-
(可选)选择
绕过向端点发送 REST API 凭据。此选项仅在 REST API 端点不需要身份验证即可访问时有效。
-
选择将监控工具报告为脱机的 HTTP 响应代码。
-
选择 + 按钮向 JSONPath 查询网格添加一行。该行默认为空。
-
在 JSONPath 查询网格中的空行内部双击,然后选择放大镜按钮以打开 JSONPath Builder。如果未选中
,则会提示您输入
REST API 凭据
。JSONPath Builder 窗口打开。在此窗口中,您可以选择要监控脱机条件的数字、布尔值或字符串类型端点。下图显示有关图书馆书籍的示例 API 的脱机条件示例:
-
单击
以将监控工具添加到主动监控工具库。
REST API 性能应用程序监控 (APM) 组件中的 JSONPath Builder
REST API 性能应用程序监控 (APM) 组件的工作方式与 REST API 性能监控工具类似,但增加了数值响应的警告和脱机阈值条件。REST API APM 组件可以附加到测试设备并进行验证。下图显示示例数字 API 端点以及警告和脱机阈值:
REST API 主动应用程序监控 (APM) 组件中的 JSONPath Builder
REST API 主动应用程序监控 (APM) 组件的工作方式与 REST API 主动监控工具类似,只是增加了一个测试设备,REST API 主动 APM 组件可以连接到该设备并验证监控工具。
高级 JSONPath 查询
如上所述,JSONPath 查询可以采用两种样式书写,即括号表示法和点表示法,例如:
如果有一个 JSON 数组“books”,其中数组中的第一项名称为“The Cat in the Hat”,则可以通过输入以下任一 JSON 查询来访问该值:
-
[‘books’][0]['name']
-
$.books[0].name
除了支持使用 JSONPath Builder 为 JSON 元素生成 JSONPath 查询之外,您还可以编写高级查询以使用 JSONPath 查询中的过滤条件来验证 JSON 响应。过滤条件可用于执行使用比较运算符的操作。此外,“length”属性可用于返回 JSON 数组的长度。
这些属性可用于 JSONPath 查询过滤条件,以根据条件返回值并过滤掉不需要的值。
:如果捕获的对象长度为 1,则标记选择器将仅返回一个值。如果 JSONPath 查询返回多个值,则会引发解析错误。
下表列出支持的比较运算符:
比较运算符名称
比较运算符
示例(括号符号)
示例(点记法)
['books'][?(@.name == 'The Cat in the Hat')]['copies']
$.books[?(@.name == 'The Cat in the Hat')].copies
该查询返回库存中“The Cat in the Hat”的副本数。
['books'][?(@.name != 'The Cat in the Hat')]['copies']
$.books[?(@.name != 'The Cat in the Hat')].copies