Spring MVC retornando JSONS e tratamento de exceção

Estou usando o Spring MVC com controladores, minha pergunta é como eu retorno uma resposta JSON diferente do objeto @ResponseBody que é retornado e convertido em um JSON a ser retornad

Para aprofundar, eu tenho o objeto chamado "UserDetails", que possui dois campos chamados "name", "emailAddress"

@ResponseBody UserDetails

agora o json retornado será parecido com

{name: "TheUsersName", emailAddress: "[email protected]"}

Existe alguma maneira de modificar o json antes de retornar (TODOS os jsons em todos os métodos em todos os controladores) onde um campo "status" será adicionado e os outros dados do json estarão na chave "data" do jso

Como também retorno um json para o front-end quando o servidor java de algum lugar lança uma exceção, o json deve ter "status: false" e o nome da exceção (pelo menos na parte de statu

questionAnswers(3)

yourAnswerToTheQuestion