spring-boot - FormUrlEncoded POST 请求,我需要使用 SpringBoot 和 Jackson 将蛇案例值转换为 camelCase
问题描述
我正在与第三方的供应商 API 集成。
我有一个 SpringBoot 和 Jackson 设置
他们正在向我发送一个 POST 请求,该请求的类型为 formUrlEncoded,参数在 snake_case 中(总共超过 10 个参数,没有正文)
例如
POST www.example.com?player_id=somePlayerId&product_id=someProductId&total_amount=totalAmount...
JSON 有许多开箱即用的助手,但我找不到任何用于 formUrlEncoded 的助手(我希望我遗漏了一些明显的东西)。
我试过@ModelAttribute和@RequestParam但没有运气。
我试图避免@RequestParam MultiValueMap<String, String> params
+ 自定义映射器选项
解决方案
我不认为你缺少任何东西。查看RequestParamMethodArgumentResolver#resolveName 源,我看不到自定义请求参数匹配方式的方法。所以看起来你要么必须实现自己的解析器,要么只用注释每个参数@RequestParam
并提供名称,例如@RequestParam("product_id") String productId
编辑:
至于ModelAttribute
,ModelAttributeMethodProcessor使用WebDataBinder。同样,您可以使用自定义自定义它,DataBinder
但我没有发现任何开箱即用的支持别名,如 Jackson 所做的那样。
推荐阅读
- tensorflow - Bert 模型出现 InvalidArgumentError Condition x <= y did not hold element wise
- python - “HTTP 错误 401:未经授权”无法使用 Deta Base
- sql - Oracle SQL 性能
- android - Recyclerview 使用 Firebase 数据库删除项目错误
- mpi - 具有自动消息大小扣除的gatherv
- outlook - Salesforce for Outlook 未在 Salesforce 中显示
- php - PHP 中的时区
- go - 像 echo 一样写入命名管道
- android - 如何获取过去 push() 生成的密钥,以便我可以在 kotlin 中更新或删除它?
- c# - 是 File.WriteAllBytes(String, Byte[]) 方法可以用来保存图片