RestTemplate + Jackson

Will ich mit Spring RestTemplate plus Jackson zu konsumieren eines WebService. Ich habe mehrere tutorials und auf den Punkt gekommen, die Erstellung der DAOs. Dies ist die Methode, wo bekomme ich alle meine domain-Objekten:

//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 meine Web-Service nicht zurück ein array von Bahnhof Objekte sofort, sondern eher einen semantischen Ausdruck in dieser 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"}, ...] }}

Also mein problem ist, ich bin mir nicht sicher, wie "sagen" RestTemplate, um eine Analyse der Objekt-Liste gleich nach dem "Stationen" - Anzeige, ohne die Schaffung eines ad-hoc-Objekt, welches anscheinend nicht wie die richtige Lösung.

Ist es eine Methode zu geben, die richtige syntax für das RestTemplate?

EDIT: ich erstellte ein wrapper-Objekt wie folgt:

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

Aber ich bin kämpfen, wie man dieses Objekt generisch, da der Schlüssel (name meiner Objekt-Liste in der JSON-Antwort abhängig ist, dass der domain-Objekt-Klasse.

InformationsquelleAutor MichelReap | 2013-08-20
Schreibe einen Kommentar