如何在SpringMVC中为特定类自定义JSON


问题内容

我正在使用SpringMVC并具有以下方法。

@RequestMapping("/login")
public @ResponseBody User login(User user) {
    // some operation here ....
    return user;
}

在大多数情况下,SpringMVC以适当的方式将对象转换为JSON。但是有时您可能需要自定义JSON。在哪里可以为所有User对象自定义JSON。我希望将User对象转换为JSON的行为在所有方面都保持一致。我想一个监听器或接口可以实现。是否存在这种解决方案?

PS。如果我要转换的对象是第三方类的实例怎么办?我无法在类定义中自定义它,因为我没有源代码…


问题答案:

Spring默认使用Jackson来序列化和反序列化JSON。您可以@JsonSerializeUser类型上使用Jackson的批注,并提供一个JsonSerializer实现所需序列化的实现。