以前都是直接查库返回实体类,当库字段为null时,返回json时字段为null
1、第一种解决方案
使用@JsonInclude(JsonInclude.Include.NON_NULL)将字段为null的忽略,直接返回有值得参数。
但由于前端想要全部字段,而且得根据类型传空,不能为null,类似(String类型的返回“”,Integer类型返回0)。
网上查询都是直接修改ObjectMapper,设置serializer为null时候直接设置空字符串,但这样不管是string,integer都会被设置为null。所以采用第二种方案
2、第二种解决方案
通过继承BeanSerializerModifier
public class MyBeanSerializerModifier extends BeanSerializerModifier { private JsonSerializer<Object> _nullArrayJsonSerializer = new MyNullArrayJsonSerializer(); private JsonSerializer<Object> _nullStringJsonSerializer = new MyNullStringJsonSerializer(); private JsonSerializer<Object> _nullIntegerJsonSerializer = new MyNullIntegerJsonSerializer(); @Override public List<BeanPropertyWriter> changeProperties(SerializationConfig config, BeanDescription beanDesc, List<BeanPropertyWriter> beanProperties) { // 循环所有的beanPropertyWriter for (int i = 0; i < beanProperties.size(); i++) {