博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java spring boot jackson 配置 null字符串为"" null数组为[]
阅读量:2376 次
发布时间:2019-05-10

本文共 1845 字,大约阅读时间需要 6 分钟。

如果后端字段为null 前端经常判断null也是挺麻烦的

配置jackso可以达到
把字符串null转为""
null数组转为[]

添加两种处理null的方法 。你也可以添加更多比如int为null的处理、布尔为null的处理等

public class CustomJsonSerializer {
public static class CollectionSerializer extends JsonSerializer {
@Override public void serialize(Object value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
if (value == null) {
value = new ArrayList(); } gen.writeObject(value); } } public static class StringSerializer extends JsonSerializer {
@Override public void serialize(Object value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
if (value == null) {
value = ""; } gen.writeObject(value); } }}

配置jackson

@Configurationpublic class JacksonConfig {
@Bean @Primary @ConditionalOnMissingBean(ObjectMapper.class) public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) {
ObjectMapper objectMapper = builder.createXmlMapper(false).build(); objectMapper.setSerializerFactory(objectMapper.getSerializerFactory().withSerializerModifier(new BeanSerializerModifier() {
@Override public List
changeProperties(SerializationConfig config, BeanDescription beanDesc, List
beanProperties) {
for (BeanPropertyWriter beanProperty : beanProperties) {
Class clazz = beanProperty.getType().getRawClass(); //判断类型 if (clazz.isArray()) {
beanProperty.assignNullSerializer(new CustomJsonSerializer.CollectionSerializer()); } else if (clazz == String.class) {
beanProperty.assignNullSerializer(new CustomJsonSerializer.StringSerializer()); } } return beanProperties; } })); return objectMapper; }}

配置结束 这样前端对于这两种就不用再判断null了

转载地址:http://spaxb.baihongyu.com/

你可能感兴趣的文章
Java JDBC
查看>>
JVM 类加载机制、对象的创建过程
查看>>
SpringBoot整合AOP
查看>>
消息中间件 MQ
查看>>
Spring | SpringBoot 理论总结
查看>>
Redis 简介、安装、配置、启动、连接
查看>>
Redis 集群、哨兵、主从同步
查看>>
在Java中操作Redis,使用Redis实现分布式锁
查看>>
MySQL 事务
查看>>
SpringCloud Ribbon 负载均衡
查看>>
SpringCloud Feign 声明式服务调用
查看>>
JVM 垃圾回收机制、垃圾收集器、调优参数
查看>>
JDK自带的JVM工具
查看>>
SpringCloud Hystrix 容错保护
查看>>
SpringCloud Zuul 网关
查看>>
SpringCloud 分布式链路追踪、分布式日志系统
查看>>
SpringCloud Config 配置管理
查看>>
富文本编辑器wangEditor
查看>>
一种适合中小团队的的Android自动化压力测试方案
查看>>
CNNs在图像压缩领域的运用——An End-to-End Compression Framework Based on Convolutional Neural Networks
查看>>