остаточный шаблон сериализует/десериализует объекты Map с ключом variosu, парами значений

Я использую resttemplate с jackson для сортировки/демаршаллирования объектов java/json. Какой была бы лучшая стратегия для сериализации/десериализации

Карта, которая может содержать пары ключ-значение, так что ключи являются строками, а значения могут быть различных типов, например, ArrayList пользовательских объектов.

Я провел некоторое исследование на этом сайте и обнаружил, что в этой ситуации можно использовать @JsonAnyGetter @JsonAnySetter, но не был уверен, как десериализовать в контексте метода getforobject resttemplate. Нужно ли писать собственный httpmessageconverter для выполнения десериализации? Заранее спасибо.


person devMKZ    schedule 02.04.2012    source источник


Ответы (1)


Предположим, что у вас есть такой ответ:

{ key1: "something", key2: 3}

Вам понадобится DTO с этими полями:

class CustomResponse {
    private String key1;
    private long key2;
}

Убедитесь, что вы добавили геттеры и сеттеры для вышеперечисленного.

Теперь сделайте запрос:

restTemplate.postForObject(url, requestObject, CustomResponse.class);

Объект запроса может быть либо DTO, как указано выше, либо просто использовать массивы и карты для создания объекта запроса.

Вы должны добавить эту аннотацию к своим ответным DTO. Это гарантирует, что если в ответе есть поля, которые не отображаются в вашем DTO, они будут проигнорированы.

@JsonIgnoreProperties(ignoreUnknown = true)
person North    schedule 21.12.2012