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

JUnit单元测试使用jsonPath无法匹配返回JSON中city字段问题咨询

问题根因

你返回的响应JSON根节点为数组类型,当前使用的$.city表达式是尝试直接读取根对象下的city字段,因此匹配不到对应值。

解决方案

你可以根据业务场景选择以下两种写法:

  • 当你确认返回数组始终只有1个元素时,取第一个元素的city字段校验,对应代码如下:
.andExpect(jsonPath("$[0].city").value("espoo"))
  • 当你需要校验数组中所有元素的city字段都包含预期值时,匹配所有数组元素即可,对应代码如下:
// 需提前导入org.hamcrest.Matchers.contains静态方法
.andExpect(jsonPath("$[*].city", contains("espoo")))
语法说明

你打印的响应Body最外层由[]包裹,说明$代表的JSON根节点是数组类型,访问数组元素需要使用[索引]语法:[0]代表取数组的第一个元素,[*]代表匹配数组内的所有元素。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 19:15:00