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

如何在WireMock Handlebars中正确定义并处理静态JSON数组

解决WireMock Handlebars中JWT载荷静态JSON数组被识别为字符串的问题

你遇到的问题根源是:直接将字符串化的JSON传给jwt助手时,它会将其视为普通字符串而非JSON数组。以下是两种可行的解决方法:

方法一:使用parseJson助手解析字符串为数组

WireMock内置了parseJson Handlebars助手,能将JSON格式的字符串解析为原生JSON对象/数组。修改映射文件中的myArray参数定义即可:

{
  "request": {
    "method": "GET",
    "urlPath": "/api/test"
  },
  "response": {
    "status": 200,
    "body": "{{{jwt 
        userId='12345'
        userName='testUser'
        myArray=(parseJson '[{\"key1\":\"value1\"}, {\"key2\":\"value2\"}]')
        isActive=true
        role='admin'
    }}}"
  }
}

关键说明

  • (parseJson '[...]')会把传入的JSON字符串解析为原生数组,jwt助手生成载荷时会保留其数组类型。
  • 注意在JSON映射文件中,字符串内的双引号必须用\转义,避免破坏JSON结构。

方法二:直接传递原生数组(适用于WireMock 2.35+)

如果使用的WireMock版本为2.35及以上,可以直接在jwt助手参数中定义数组,无需字符串化:

{
  "request": {
    "method": "GET",
    "urlPath": "/api/test"
  },
  "response": {
    "status": 200,
    "body": "{{{jwt 
        userId='12345'
        userName='testUser'
        myArray=[{\"key1\":\"value1\"}, {\"key2\":\"value2\"}]
        isActive=true
        role='admin'
    }}}"
  }
}

验证效果

修改后生成的JWT载荷会符合你的期望输出,myArray将以JSON数组形式存在,而非字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 01:22:39