You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RestAssured如何校验以姓名为key的JSON结构中任意number字段匹配指定值

RestAssured 动态key字段校验解决方案

错误原因

你使用的*.number是JSONPath的通配符语法,而RestAssured的body()方法默认使用GPath表达式解析路径,二者语法不兼容,因此会触发报错。

正确实现方式

针对你描述的「仅返回1个人员信息、需要校验任意动态key下的number字段值」的场景,有两种常用实现:

  • 方案1:匹配所有人员的number字段是否包含目标值(符合any匹配逻辑,返回多个人员时也可用)
import static org.hamcrest.Matchers.hasItem;

// validatableResponse是你拿到的ValidatableResponse实例
validatableResponse.body("values().number", hasItem("123"));
  • 方案2:直接取唯一人员的number字段校验(确定仅返回1个人员时使用,逻辑更直观)
import static org.hamcrest.Matchers.is;

validatableResponse.body("values().number[0]", is("123"));

语法说明

GPath中针对Map结构的values()方法会提取所有value的集合,后续通过.number可以批量提取集合中每个元素的number字段值,最终得到number字段的列表,再搭配对应的Hamcrest匹配器即可完成校验。


内容的提问来源于stack exchange,提问作者hello2244

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 01:36:04