Объект FasterXML в JSON с определенным регистром - PullRequest
0 голосов
/ 25 апреля 2018

Я пытаюсь использовать веб-сервис REST, который выходит на SOAP-сервис.Чтобы это работало правильно, я должен отправить правильный случай для тегов XML в моем сообщении JSON службе REST.

Вот что они хотят:

{"mappingSSNValidation":{"Group":{"InSSN":"123456789"}}}

Здесьэто то, что я могу создать:

{"mappingSSNValidation":{"group":{"inSSN":"123456789"}}}

Определения классов:

public class Group {
    protected String InSSN = null;
    //Public getters and setters
}
public class MappingSSNValidation {
    protected Group group = new Group();
    //Public getters and setters.
}
public class MyRequest {
    protected MappingSSNValidation mappingSSNValidation = new MappingSSNValidation();
    //Public getters and setters.
}
MyRequest request = new MyRequest();
request.getMappingSSNValidation().getGroup().setInSSN("123456789");
ObjectMapper mapper = new ObjectMapper();
mapper.configure(MapperFeature.ACCEPT_CASE_INSENSITIVE_PROPERTIES, true);
mapper.writeValueAsString(request);

Итак, мой вопрос таков: как получить имя объекта в качестве оболочки вместо имени переменной?Но это может произойти только для имени группы.Для переменных в группе я хочу использовать имя переменной.

Я бы подумал, что есть аннотация, которую я мог бы использовать для этого, но я не могу найти ту, которая работает.Я пробовал @JsonRootName в классе Group, и это не сработало.

1 Ответ

0 голосов
/ 26 апреля 2018

Используя приведенное выше определение переменной @JsonProperty, вы можете сделать это.

public class MappingSSNValidation {
    @JsonProperty("Group")
    protected Group group = new Group();
    //Public getters and setters.
}
...