过滤器中修改响应体导致前端解析异常
在过滤器中修改响应体后,前端可能无法正常解析返回的json对象。这一异常通常是由 long 类型字段在返回给前端之前未正确转换为 string 所致。
以下是对这个问题的解决方法:
使用 jackson objectmappercustomizer 在过滤器之前注册一个自定义序列化器,将 long 类型字段序列化为 String。示例代码如下:
立即学习“前端免费学习笔记(深入)”;
@Bean public Jackson2ObjectMapperBuilderCustomizer jacksonCustomizer() { return builder -> builder.serializerByType(Long.class, new JsonSerializer<Long>() { @Override public void serialize(Long value, JsonGenerator jgen, SerializerProvider provider) throws IOException { jgen.writeString(value.toString()); } }); }
这样,在过滤器执行之前,long 类型字段将被自动转换为 string,从而避免了前端解析异常。