當請求的 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中的規定的字段