RestTemplate + Jackson

Ich möchte Spring's RestTemplate plus Jackson verwenden, um einen WebService zu nutzen. Ich habe mehrere Tutorials absolviert und bin dabei, die DAOs zu erstellen. Dies ist die Methode, mit der ich alle meine Domänenobjekte erhalte:

// 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;

Aber mein Webdienst gibt nicht sofort ein Array von Stationsobjekten zurück, sondern einen semantischeren Ausdruck auf diese Weise:

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

Mein Problem ist also, dass ich nicht sicher bin, wie RestTemplate angewiesen werden soll, die Objektliste direkt nach der Anzeige "Stationen" zu analysieren, ohne ein Ad-hoc-Objekt zu erstellen, was nicht die richtige Lösung zu sein scheint.

Gibt es eine Möglichkeit, die richtige Syntax für RestTemplate anzugeben?

BEARBEITEN: Ich habe ein Wrapper-Objekt wie folgt erstellt:

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

Ich habe jedoch Probleme damit, dieses Objekt generisch zu machen, da der Schlüsselname meiner Objektliste in der JSON-Antwort von der Klasse des Domänenobjekts abhängt.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage