一.@JsonProperty
1.此注解用於屬性上,作用是把該屬性的名稱序列化為另外一個名稱。例如:
@JsonProperty("name") private String Name2;
把name2 在序列化的時候變成name。
JsonProperty Maven依賴是
<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version></version> </dependency>
二、@JsonSerialize
注解用於屬性或者getter方法上,用於在序列化時嵌入我們自定義的代碼。例如將date轉成long型
1.自定義轉換規則
public class Date2LongSerialzer extends JsonSerializer<Date>{ @Override public void serialize(Date value, JsonGenerator gen, SerializerProvider serializers) throws IOException, JsonProcessingException { // TODO Auto-generated method stub gen.writeNumber(value.getTime()/1000); } }
2.在屬性上使用注解
@JsonSerialize(using = Date2LongSerialzer.class)
三、@JsonInclude(JsonInclude.Include.NON_NULL)
在給前端返回的json數據上盡量不要有空的或者null出現,所以使用@JsonInclude(Include.NON_NULL) 這個注解放在類頭上就可以解決。 實體類與json互轉的時候 屬性值為null的不參與序列化
四、還有其他一些注解可以參照 https://www.cnblogs.com/guijl/p/3855329.html