在开发过程中,会遇到前后端数据存储单位不一致,比如前端需要空字符串,但是后端存储到数据库可能需要N/A,那么如何优雅的转换呢?
1. 写一个负责转换的类,里面写好规则
public class UnKnowStrSerializer extends JsonSerializer<Object> {
@Override
public void serialize(Object val, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
if (val instanceof String) {
if (Constants.DEFAULT_UNKNOWN_STRING.equals(val)) {
jsonGenerator.writeString("");
} else {
jsonGenerator.writeString((String) val);
}
}
}
}
2. 在实体类上需要装换的字段上加上注解
/**
* SYSLOG 地址
*/
@Size(max = 20, message = "SYSLOG 地址长度不能超过20字符")
@JsonSerialize(using= UnKnowStrSerializer.class)
private String sysLogHost;