springboot 實體類使用@JsonIgnore屬性後無法接收前端參數的完美解決方法

在controller中返回json數據的時候,有時不希望某些屬性返回給前端,比如說密碼或者一些無用的數據,一般我們會通過給實體屬性添加@JsonIgnore註解來避免返回。
User實體的passwd屬性在序列化的時候會被忽略
但是當我們接收前端參數的時候,@JsonIgnore會一併忽略掉setter方法,也就是說前端的傳的值將無法注入到實體類屬性中。

百度到的方法有說在setter上添加@JsonProperty, 在getter上添加@JsonProperty,這樣倒是也能解決問題,不過稍微有點麻煩,尤其是對用了lombok的小夥伴來說。

解決方案取決於你的jackson版本:
1.9版本之後:
給實體類屬性添加這個註解: @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
在這裏插入圖片描述

1.9版本之前:只給getter方法添加@JsonIgore註解, setter和屬性無需添加(這個我沒有試過,不曉得管不管用)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章