RestTemplate + Jackson

Eu quero usar Spring's RestTemplate mais Jackson para consumir um WebService. Eu segui vários tutoriais e cheguei ao ponto de criar os DAOs. Este é o método em que obtenho todos os meus objetos de domínio:

// Create a Rest template
RestTemplate restTemplate = new RestTemplate();

// Create a list for the message converters

List<HttpMessageConverter<?>> messageConverters = new ArrayList<HttpMessageConverter<?>>();

// Add the Jackson Message converter
messageConverters.add(new MappingJacksonHttpMessageConverter());

// Add the message converters to the restTemplate
restTemplate.setMessageConverters(messageConverters);

List<Station> resultList = Arrays.asList(restTemplate.getForObject(BASE_URL, Station[].class));

return resultList;

Mas meu serviço da Web não retorna uma matriz de objetos Station imediatamente, mas sim uma expressão semântica mais desta maneira:

{"success":true,"message":"Records Retrieved Successfully","data":{"totalCount":"14","stations":[{"id":"1264","station":"Station 1","idJefatura":"1","syncDate":"2013-01-24 13:20:43"}, ...] }}

Então, meu problema é que eu não tenho certeza de como "dizer" RestTemplate para analisar a lista de objetos logo após o indicador "estações", sem criar um objeto ad hoc, que não parece ser a solução adequada.

Existe alguma maneira de especificar a sintaxe correta para RestTemplate?

EDIT: Eu criei um objeto wrapper como este:

public class RestResponseObject {

    private boolean success;
    private String message;
    private Data data;

    public Data getData() {
        return data;
    }

    public void setData(Data data) {
        this.data = data;
    }

    public boolean isSuccess() {
        return success;
    }

    public void setSuccess(boolean success) {
        this.success = success;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public class Data {
        private int totalCount;
        private List<Station> stations;

        public int getTotalCount() {
            return totalCount;
        }

        public void setTotalCount(int totalCount) {
            this.totalCount = totalCount;
        }

        public List<Station> getStations() {
            return stations;
        }

        public void setStations(List<Station> estaciones) {
            this.stations= estaciones;
        }
    }
}

Mas estou lutando para tornar esse objeto genérico, já que o nome da chave da minha lista de objetos na resposta JSON depende da classe desse objeto de domínio.

questionAnswers(1)

yourAnswerToTheQuestion