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

如何用WireMock独立版按查询参数返回JSON数组单个对象?

可行,实现方法如下
  • 第一步:启动WireMock时启用响应模板功能,启动命令添加对应参数:

    java -jar wiremock-jre8-standalone.jar --global-response-templating
    
  • 第二步:修改mappings中的接口配置,利用WireMock的模板语法根据查询参数过滤JSON数组对象:
    假设你的fileName.json内容是如下结构的JSON数组:

    [
      {"id": "1", "name": "张三"},
      {"id": "2", "name": "李四"}
    ]
    

    调整后的mapping配置示例:

    {
      "mappings": [
        {
          "request": {
            "url": "/path",
            "method": "GET",
            "queryParameters": {
              "id": {
                "matches": ".+"
              }
            }
          },
          "response": {
            "status": 200,
            "body": "{{#filter (fromFile \"fileName.json\") (fn (item) (equal (get item \"id\") (queryParam \"id\")))}}{{this}}{{/filter}}",
            "headers": {
              "Content-Type": "application/json"
            }
          }
        }
      ]
    }
    

    核心逻辑说明:

    • (fromFile "fileName.json"):读取外部JSON文件的数组内容
    • filter 辅助函数:遍历数组,筛选出id与请求查询参数id匹配的对象
    • (queryParam "id"):获取请求携带的id查询参数值
  • 额外注意:

    • 若查询参数id是数字类型,需保证文件中对应字段也是数字类型,或通过toString转换后再做比较
    • 若未匹配到对应对象,会返回空内容,可添加默认处理逻辑,比如在filter块后追加{{else}}{"error": "数据不存在"} {{/filter}}返回错误提示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 13:52:11