@JsonProperty註解的使用

遇到一個問題,前端按照日常方式傳給我json對象,屬性名和我一致,我在controller層也按日常方式使用@RequestBody註解,用相應的實體類接收參數,但別人能夠成功接到參數,而個人卻不能,在實體類的成員變量上增長@JsonProperty("屬性名"),就解決了問題前端

查了一下這個註解:json

@JsonProperty 此註解用於屬性上,做用是把該屬性的名稱序列化爲另一個名稱,如把trueName屬性序列化爲name,@JsonProperty("name")。後端

import com.fasterxml.jackson.annotation.JsonProperty; 
  
public class Student implements Serializable{ 
  
    @JsonProperty("name") 
    private String trueName; 
  
    public String getTrueName() { 
        return trueName; 
    } 
  
    public void setTrueName(String trueName) { 
        this.trueName = trueName; 
    } 
app

測試一下測試

import com.fasterxml.jackson.core.JsonProcessingException; 
import com.fasterxml.jackson.databind.ObjectMapper; 
  
public class Main { 
    public static void main(String[] args) throws JsonProcessingException { 
        Student student = new Student(); 
        student.setTrueName("張三");  this

       //使用writeValuesAsString的方法就能夠把對角轉化成json字符串。xml

        System.out.println(new ObjectMapper().writeValueAsString(student)); 
    } 
}對象

獲得結果blog

{"name":"張三"} 字符串

注意事項:類和父類必須都實現序列化後,才能夠反序列化,類沒有實現序列化,也能夠使用此註解序列化

感受這個註解的做用是:1.前端傳參數過來的時候,使用這個註解,能夠獲取到前端與註解中同名的屬性  2。後端處理好結果後,返回給前端的屬性名也不以實體類屬性名爲準,而以註解中的屬性名爲準

 

 

有個疑問,不知道能夠不以把接收前端來的參數看做序列化,返回給前端的參數時,看成反序列化?

相關文章
相關標籤/搜索