Применение стратегии именования к имени класса при сериализации POJO с Джексоном - PullRequest
0 голосов
/ 23 марта 2012

При использовании параметра сериализации WRAP_ROOT_VALUE Джексона и сериализации POJO имя класса используется как корневое значение в сериализованном JSON.

mapper.configure(SerializationConfig.Feature.WRAP_ROOT_VALUE, true);

Вопрос - как я могу применить стратегию именования к имени класса? Я хотел бы преобразовать имя класса во что-то другое.

1 Ответ

0 голосов
/ 09 июня 2012

Я сделал это с помощью аннотации @JsonRootName, например:

@JsonRootName( value = "smsMessageRequest" )           
public class TextMessage {

    private String message;
    private String address;
}

public static String toJson(Object object) throws IOException {

    ObjectMapper mapper = new ObjectMapper();

    mapper.setVisibility(JsonMethod.FIELD, Visibility.ANY);
    mapper.configure(SerializationConfig.Feature.WRAP_ROOT_VALUE, true);

    return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(object);
}

Который дал:

{
  "smsMessageRequest" : {
    "message" : "abc",
    "address" : "123"
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...