遇到一個問題,前端按照日常方式傳給我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。後端處理好結果後,返回給前端的屬性名也不以實體類屬性名爲準,而以註解中的屬性名爲準
有個疑問,不知道能夠不以把接收前端來的參數看做序列化,返回給前端的參數時,看成反序列化?