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

如何在Postman中传递Set类型属性以完成JWT用户注册

解决JWT注册请求中Set类型Role字段的Postman传参问题

问题原因

你遇到的HttpMessageNotReadableException是因为SignUpRequest类里的role字段定义为Set<String>类型,但你在请求体里传递的是空字符串""——Jackson无法把单个字符串自动转换成HashSet<String>集合,所以抛出了类型转换错误。

正确的Postman请求体格式

要传递Set/List类型的参数,你需要在JSON请求体里使用数组格式,以下是几种适配你代码逻辑的可行场景:

  1. 传递单个角色
{ 
  "id": 1, 
  "username": "jacksonBez", 
  "email": "bezkoder@gmail.com", 
  "role": ["user"], 
  "password": "123bezko" 
}
  1. 传递多个角色
{ 
  "id": 1, 
  "username": "jacksonBez", 
  "email": "bezkoder@gmail.com", 
  "role": ["admin", "mod"], 
  "password": "123bezko" 
}
  1. 使用默认角色(无需指定role)
    根据你控制器里的逻辑,当strRoles == null时,系统会自动给用户分配ROLE_USER角色,所以你可以直接省略role字段,或者显式设为null:
{ 
  "id": 1, 
  "username": "jacksonBez", 
  "email": "bezkoder@gmail.com", 
  "role": null, 
  "password": "123bezko" 
}

额外说明

如果你确实想支持空字符串转换为空Set的场景,可以通过配置Jackson的CoercionConfig开启强制类型转换,但这种方式不符合REST API的规范(集合类型本该用数组传递),因此更推荐上面的数组格式传参方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 19:02:52