@JsonProperty注解的使用


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

查了一下這個注解:

@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; 
    } 

測試一下

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("張三");  

       //使用writeValuesAsString的方法就可以把對角轉化成json字符串。

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

得到結果

{"name":"張三"} 

注意事項:類和父類必須都實現序列化后,才可以反序列化,類沒有實現序列化,也可以使用此注解序列化

感覺這個注解的作用是:1.前端傳參數過來的時候,使用這個注解,可以獲取到前端與注解中同名的屬性  2。后端處理好結果后,返回給前端的屬性名也不以實體類屬性名為准,而以注解中的屬性名為准

 

 

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

 


免責聲明!

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



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