轉自:springboot接口入參下划線轉駝峰以及返回參數駝峰轉下划線實現 - 李東平|一線碼農 - 博客園 (cnblogs.com)
1.背景
在實際開發中,通常來說java里面是使用駝峰的命名規則;
但是有時候在對接其他三方平台的接口時,要求使用下划線的命名規則,這時候就涉及到如何讓自己的接口滿足三方平台的下划線;
實現方式有
1.java里面也使用下下划線的方式接收和響應,但是不推薦這樣,因為雖然滿足了接口需求,但是不符合java里面的命名規范;
2.java里面使用駝峰,接收到參數后手動轉換,這樣做太麻煩.
3.java里面使用駝峰,寫一個工具方法,通過注解的方式,統一轉換,推薦,也是實際開發中常用的方式
那些地方需要轉換
1.傳入參數的時候(下換線轉為駝峰)
2.響應結果的時候(駝峰轉為下划線)
因為響應結果的時候(駝峰轉為下划線)比較簡單,先搞定這個
2.響應結果的時候(駝峰轉為下划線)
方式一:在返回對象的類上加注解(推介)
@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
案例如下:

方法二:在字段上注解
@JsonProperty(value = "order_card")

3.傳入參數的時候(下換線轉為駝峰)
方式一:自己手動封裝,不推薦,略;
方式二:接收為Map對接,通過Json轉換(如果系統中只有少數個別接口需要轉換,可以這樣寫);
步驟一:接收對象上的字段上加注解 @JsonProperty(value = "order_card")

步驟二:控制層出的寫法如下

方式三:通過實現接口HandlerMethodArgumentResolver的方式,強烈推薦
步驟一:自定義注解 ParameterConvert
View Code
步驟二:自定義類AbstractCustomizeResolver
View Code
步驟三:自定義類 UnderlineToCamelArgumentResolver
View Code
步驟四:整合到springboot中,在WebConfig中添加如下代碼
View Code

步驟五:使用,很簡單,在接收參數的對象前加注解

