过滤器修改响应体后,前端无法正常解析 json
使用过滤器修改返回的 json 响应体后,前端出现无法解析的问题。问题源于将 long 类型字段转换为 string 后,前端无法正确解析修改后的 json 数据。
源代码过滤器如下:
public class LongTypeFilter extends OncePerRequestFilter { private final ObjectMapper objectMapper = new ObjectMapper(); // ... }
过滤器通过对响应内容缓存并进行修改后,再将其写回响应中。若响应体为 json 格式,过滤器会将 json 中的 long 类型字段转换为 String 类型。
立即学习“前端免费学习笔记(深入)”;
为了解决前端无法正常解析的问题,可以考虑以下方案:
修改过滤器,使用 jackson2objectmapperbuildercustomizer 给 jackson 注册 long 序列化为 string 的序列化器,在序列化时直接转换 long 类型为 string。这样,即可避免对响应体进行二次解析和修改,也能确保前端正确解析 json 数据。