Handling de Json

Estou fazendo uma aplicação que recebe um Json por POST, mas acabou que tudo foi muito automágico e eu não entendi bem como isso aconteceu.

Eu criei um objeto que representa a estrutura do Json e pego ele com o @RequestBody, mas não dei nenhum comando explícito para este binding.

@RequestMapping(value = "/graph", method = RequestMethod.POST)
public ResponseEntity receiveJson(@RequestBody JsonData json){
    graphService.saveJsonData(json);
    return new ResponseEntity(json, HttpStatus.CREATED);

}

Só pode ter sido o Spring, já que não estou usando nenhuma biblioteca de Json, mas sendo assim, que outras opções eu teria para trabalhar neste tipo de bind? Eu poderia por exemplo, dizer que não quero que um campo deste objeto Json fosse parte do Json devolvido?

Vamos la:

Se isto é uma API REST, isso significa que vc enviou a representação de uma entidade para ser criada ( ou atualizada, depende do caso). a sua API persistiu e retornou a versão atualizada da mesma ( por exemplo eu preciso saber o id que foi criado ).

Se vc precisa esconder campos, então vc tem uma razão pra isso. Então suas regras de negocio são mais complexas e provavelmente seu modelo não é REST. Ou pode ser REST se vc responder por qual motivo vc precisa esconder campos e se estes campos não são parte de outra estrutura de dados.

Se não é rest, vc pode tentar criar um decorador (crie outro objeto e retorne-o, por exemplo) para modificar a resposta antes de retorna-la. mas de novo, pergunte-se qual o motivo.