前言
最近在項目使用json字元串轉javaBean 在轉換過程中發現json轉到JavaBean的時候屬性名稱不一至。例如json字元串為:
{
"code": "1",
"message": "操作成功"
}
後端javaBean為:
@Data
public class Result implements Serializable {
private String aaa;
private String bbb;
}
解決方法
引用 jackson-annotations maven依賴
其中@JsonProperty 和 @JsonAlias 可以解決這個問題,下面詳細介紹他們的使用方法
- @JsonProperty 提供了序列化和反序列化過程中JavaBean屬性所對應的名稱,簡單的來說就是json字元串轉javaBean或者javaBean轉json字元串時會将屬性映射為@JsonProperty設定的value ,例如:
@Data public class Result implements Serializable { @JsonProperty("code") private String aaa; @JsonProperty("message") private String bbb; }
我們發現一個問題,傳回的json并不是我們想要的結果{ "code": "1", "message": "操作成功" }
如果我們想要實作上面的結果,那麼就要用到@JsonAlias了。{ "aaa"1", "bbb": "操作成功" }
- @JsonAlias 隻在反序列化時起作用,簡單來說就是json字元串轉javaBean的時候會生效,例如:
@Data public class Result implements Serializable { @JsonAlias("code") private String aaa; @JsonAlias("message") private String bbb; }
達到了我們想要的結果。{ "aaa": "1", "bbb": "操作成功" }
- 總結:以上就是本次在項目中遇到的問題,如有那塊有問題或者想要補充的,歡迎指出,謝謝。