接口json傳輸 使用@RequestBody JavaBean 反序列化請求的json 字段映射失敗問題解決


當請求的 body-json 字段與后端服務接收 @RequestBody 對象字段不一致是,使用@JsonField(name="user_name") 無效

例如 User對象的 userName屬性 

@Data
public class User{
    
@JsonField(name="user_name")
private string userName;
    
}

使用poseman進行請求 

 

使用@RequestBody User user 進行參數的接收, 此時userName字段為null

解決方法:

1. 經過查閱資料發現, @jsonField(name="user_name") 在字段屬性上時 只對序列化有效,比如把對象轉為json字符串, 如果需要反序列化  需要在set方法上進行注解 我使用了@data lomobook所以就沒有試這個方法


2. 使用 @JsonProperty("user_name")  注解在屬性上,就ok了  我使用的是這種

@Data
public class User{
@JsonProperty(name="user_name")
private string userName;
}

拓展:JsonProperty是位於jackson包里的
JsonField是位於fastjson包下的,實體類序列化為json字符串的時候,此類的原字段,序列化為json中的規定的字段

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM