格式化相关

@JsonFormat(格式化)

根据不同的属性格式化效果也不同

示例——Year

@JsonFormat(pattern = "yyyy")
private Year year;

示例——YearMonth 

@JsonFormat(pattern = "yyyy-MM")
private YearMonth billingMonth;

示例——LocalDate

// 对应类型  2019-07-02
@JsonFormat(pattern = "yyyy-MM-dd") private LocalDate localDate ;

 示例——LocalDateTime

@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")
private LocalDateTime localDateTime;

 @JsonSerialize(序列化)

使用方式-当值为空时返回一个空字符串(String类型)

声明

package com.xxx;

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import org.apache.commons.lang3.StringUtils;

import java.io.IOException;

/**
 * 处理字符串null值
 */
public class StringSerializerFilterEmpty extends JsonSerializer<String> {
    @Override
    public void serialize(String value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
        if (StringUtils.isNotBlank(value)) {
            gen.writeObject(value);
        } else {
            gen.writeObject("");
        }
    }
}

使用

@JsonSerialize(nullsUsing = StringSerializerFilterEmpty.class)
private String managerName;

使用方式-当值为空时返回一个空字符串(通用Object类型)

声明

package com.xxx;

import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;

import java.io.IOException;

/**
 * 处理null值
 */
public class ObjectSerializerFilterEmpty extends JsonSerializer<Object> {
    @Override
    public void serialize(Object value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
        if (value != null) {
            gen.writeObject(value);
        } else {
            gen.writeObject("");
        }
    }
}

使用

@JsonSerialize(nullsUsing = ObjectSerializerFilterEmpty.class)
private Long managerUid;