您现在的位置是:首页 > 技术人生 > 后端技术后端技术

SpringBoot返回空字符串集合处理

高晓波2020-02-25【后端技术】人已围观

简介今天在做微信公众号返利机器人的时候遇到一个问题,公众号自定义菜单封装成java对象。当subButton,也就是二级菜单为空的时候,返回到前台为null,而前台页面处理报错(自定义菜单前台页面github找的)。

今天在做微信公众号返利机器人的时候遇到一个问题,公众号自定义菜单封装成java对象:
 
package com.gaoxiaobo.web.component.wechat;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.util.List;

@Data
public class Menu {
    private String type;
    private String name;
    private String url;
    private String appid;
    private String pagepath;
    private String key;
    @JsonProperty("sub_button")
    @JSONField(name = "sub_button")
    private List<Menu> subButton;
}

当subButton,也就是二级菜单为空的时候,返回到前台为null,而前台页面处理报错(自定义菜单前台页面github找的)。

其实正常开发的时候也会遇到这样的需求,字符串为null时返回“”,集合为null时返回[]。

解决方案:
@Configuration
public class JacksonConfig {
 
    @Bean
    @Primary
    @ConditionalOnMissingBean(ObjectMapper.class)
    public ObjectMapper jacksonObjectMapper(Jackson2ObjectMapperBuilder builder) {
        ObjectMapper objectMapper = builder.createXmlMapper(false).build();
        objectMapper.getSerializerProvider().setNullValueSerializer(new JsonSerializer<Object>() {
            @Override
            public void serialize(Object o, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
                jsonGenerator.writeString("");
            }
        });
        return objectMapper;
    }
}
 

Tags:SpringBoot   微信公众号

很赞哦! ()

文章评论