Jackson - Modifica um atributo em tempo de execução sem anotação

Vamos dizer que eu tenho um bean:

public class Msg {
  private int code;
  private Object data;

   ... Getter/setters...
}

E eu converto em JSON ou XML com esse tipo de código de teste:

public String convert() {
  Msg msg = new Msg();
  msg.setCode( 42 );
  msg.setData( "Are you suggesting coconuts migrate?" );

  ObjectMapper mapper = new ObjectMapper();
  return mapper.writeValueAsString( msg );
}

A saída será de alguma forma assim:

{"code":42,"data":"Are you suggesting coconuts migrate?"}

Agora, digamos que eu queira substituir o atributo 'data' por algum nome dinâmico:

public String convert(String name) {
  Msg msg = new Msg();
  msg.setCode( 42 );
  msg.setData( "Are you suggesting coconuts migrate?" );

  ObjectMapper mapper = new ObjectMapper();
  // ...DO SOMETHING WITH MAPPER ...
  return mapper.writeValueAsString( msg );
}

Se eu chamar a funçãoconverter ("toto") Eu gostaria de ter esta saída:

{"code":42,"toto":"Are you suggesting coconuts migrate?"}

Se eu chamar a funçãoconverter ("groovy") Eu gostaria de ter esta saída:

{"code":42,"groovy":"Are you suggesting coconuts migrate?"}

É claro que eu poderia fazer uma substituição de String após a criação do JSON, mas se você tiver uma resposta com uma abordagem programática, eu a aceitarei.

obrigado

questionAnswers(2)

yourAnswerToTheQuestion