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

使用RestAssured调用RestAPI校验返回JSON字段报参数未定义错误如何解决

问题原因
  • RestAssured 内置的 JsonPath 解析时,若 JSON 节点的 key 为纯数字字符串,直接使用 .数字 的路径写法会被识别为参数占位符,而非实际节点名称,因此触发参数未定义的报错。
  • 额外注意:接口返回的 exampleData 是数值类型的 33,原代码中使用 equalTo("33") 匹配字符串类型值,路径修正后也会出现断言不匹配的问题。
解决方案

对断言的路径和匹配规则做两处调整即可:

  1. 纯数字的节点 key 改用中括号+单引号的写法引用,将路径 data.examples.2.exampleData 修改为 data.examples['2'].exampleData
  2. 将字符串匹配规则改为数值匹配,把 equalTo("33") 修改为 equalTo(33)

修改后的完整代码如下:

String payload_data = "{" +
                "\"Time\":1638057600, " +
                "\"exampleType\":example, " +
                "\"Id\":[2]}";

    RestAssured.defaultParser = Parser.JSON;
    given().
            contentType(ContentType.JSON).
            body(payload_data).
            when().
            post(api_url).
            then().
            statusCode(200).
            body("data.examples['2'].exampleData", equalTo(33));
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 06:45:04