web-dev-qa-db-fra.com

Comment obtenir la liste d'un objet dans Spring RestTemplate

Comment obtenir la liste d'un objet? Ci-dessous vous pouvez trouver mon code:

ResponseEntity<Object> responseEntity = restTemplate.getForEntity("localhost:8083/connectors/", Object.class);
Object object = responseEntity.getBody();

En fait, la variable objet est une liste d'objets (chaînes) et je dois obtenir toutes ces chaînes. 

Si je l’imprime System.out.println(object.toString()); cela ressemble à ça:

[objvar, values, test, object, servar, larms, aggregates, sink, records]

J'ai besoin que la liste de ces chaînes soit utilisée dynamiquement. S'il te plait peux-tu aider?

5
Tom

Essayez ceci. Cela devrait marcher. 

ResponseEntity<String[]> responseEntity = restTemplate.getForEntity("localhost:8083/connectors/", String[].class);
List<String> object = Arrays.asList(responseEntity.getBody());

Pour les cas simples, le code ci-dessus fonctionne, mais lorsque vous souhaitez mapper des structures json complexes, il est idéal d'utiliser ParameterizedTypeReference.

ResponseEntity<List<String>> responseEntity =
        restTemplate.exchange("localhost:8083/connectors/",
            HttpMethod.GET, null, new ParameterizedTypeReference<List<String>>() {
            });
List<String> listOfString = responseEntity.getBody();
7
pvpkiran

Vous pouvez essayer ceci comme solution de contournement

List list = Java.util.Arrays.asList(object.toString());

Vous pouvez également utiliser des bibliothèques telles que ObjectMapper , Qui convertit directement les chaînes json en votre modèle souhaité.

0
meShakti