商城網(wǎng)站建設(shè)系統(tǒng)企業(yè)網(wǎng)站建設(shè)推廣
問題:解決sprigboot項目get請求中有下劃線的入?yún)?shù),如:first_name,希望在項目中將下劃線格式轉(zhuǎn)成firstName,用@JsonProperty注解發(fā)現(xiàn)失效問題
1.核查:@JsonProperty注解對應(yīng)包是否正確
正確包:import com.fasterxml.jackson.annotation.JsonProperty;
如果使用jar正確,還是無效,往下看
2.在實體類中重寫參數(shù)的set方法
例子:
實體類:
package com.iterge.lph_test.entity;import lombok.AccessLevel;
import lombok.Data;
import lombok.experimental.FieldDefaults;/*** Create by LPH 2021/8/3*/
@Data
@FieldDefaults(level = AccessLevel.PRIVATE)
public class UserReq {Long id;String name;String firstName;
}
Controller:
package com.iterge.lph_test.controller;import com.iterge.lph_test.entity.UserReq;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** @author liuph* @date 2023/8/10 15:01:30*/@RestController
@RequestMapping("/test")
@Slf4j
public class ParamController {@GetMapping("/param/test")public String params(UserReq req){log.info("入?yún)?shù):{}",req);return req.toString();}}
結(jié)果:
修改后:
實體類:
package com.iterge.lph_test.entity;import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.AccessLevel;
import lombok.Data;
import lombok.experimental.FieldDefaults;/*** Create by LiuPH 2021/8/3*/
@Data
@FieldDefaults(level = AccessLevel.PRIVATE)
public class UserReq {Long id;String name;@JsonProperty("first_name")String firstName;public void setFirst_name(String name){this.firstName = name;}
}
?運行結(jié)果:
?over~