过滤器修改响应体导致前端解析异常:如何解决Long类型字段转换问题?

过滤器中修改响应体导致前端解析异常

在过滤器中修改响应体后,前端可能无法正常解析返回的json对象。这一异常通常是由 long 类型字段在返回给前端之

前未正确转换为 string 所致。

以下是对这个问题的解决方法:

使用 jackson objectmappercustomizer 在过滤器之前注册一个自定义序列化器,将 long 类型字段序列化为 string。示例代码如下:

@Bean
public Jackson2ObjectMapperBuilderCustomizer jacksonCustomizer() {
    return builder -> builder.serializerByType(Long.class, new JsonSerializer() {
        @Override
        public void serialize(Long value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
            jgen.writeString(value.toString());
        }
    });
}

这样,在过滤器执行之前,long 类型字段将被自动转换为 string,从而避免了前端解析异常。