Джексон - Изменить атрибут во время выполнения без аннотации

Допустим, у меня есть боб:

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

   ... Getter/setters...
}

И я конвертирую его в JSON или XML с помощью такого тестового кода:

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 );
}

Вывод будет как-то так:

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

Теперь предположим, что я хочу заменить атрибут data на какое-то динамическое имя:

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 );
}

Если я вызываю функциюконвертировать ("toto") Я хотел бы иметь такой вывод:

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

Если я вызываю функциюконвертировать ("заводной") Я хотел бы иметь такой вывод:

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

Конечно, я мог бы заменить String после создания JSON, но если у вас есть ответ с программным подходом, я его приму.

Спасибо

Ответы на вопрос(2)

Ваш ответ на вопрос