2016-06-30 13 views
0

Ich habe diesen Dienst, der bestimmte Benutzer aus einer db nimmt und sie als JSON-Objekt zurückgibt.
Ich will die Antwort empfangen und sie als json verwenden, aber ich bin fast 100% sicher, dass ich etwas falsch Ursache tat, wenn ich die Antwort, die ich diese bekommen drucken:ResponseEntity returning java.lang.Object

[Ljava.lang.Object;@69a38065 


Dies ist Controller:

public Object[] getClienteNomeCognome(String nome, String cognome) throws Exception { 
    try { 
     final RestTemplate restTemplate = new RestTemplate(); 
     final String url = "somelink?cognome=%25"+cognome+"%25&nome=%25"+nome+"%25"; 
     //final ResponseEntity<List> response = (ResponseEntity<List>) restTemplate.getForObject(url, List.class); 
     final ResponseEntity<Object[]> response = restTemplate.getForEntity(url, Object[].class); 
     Object[] risultati = response.getBody(); 
     LOGGER.info("La richiesta e' stata effettuata con status code: " + response.getStatusCode().toString()); 
     if (risultati != null && risultati.toString().contains("<error>")) { 
      throw new Exception(String.format(
        "[SERVICE] La risposta del servizio contiene degli errori: %s", 
        risultati)); 
     } else { 
      LOGGER.debug("[SERVICE] Fine chiamata al servizio di ricerca cliente"); 
      LOGGER.info(response.getBody().toString()); 
      return risultati; 
     } 
    } catch (HttpClientErrorException hcee) { 
     throw new Exception(String.format(
       "[SERVICE] Errore durante la chiamata. Error: %s", 
       hcee.getMessage())); 
    } catch (Exception e) { 
     throw new Exception(String.format(
       "[SERVICE] Errore generico durante la chiamata al servizio. Error: %s", 
         e.getMessage())); 
    } 

} 

Antwort

0

Sie sind die toString() Ergebnis angezeigt wird, die nicht auf Objektklasse überlastet ist. So zeigt es den Namen des Objekts plus die Adresse an.

Sie sollten eine Klasse verwenden, um die Ergebnisse zu speichern, und Sie können toString() überladen, um eine sinnvolle Darstellung zu haben.

Sie können auch eine stark typisierte Liste verwenden, um die Ergebnisse anzuzeigen:

ResponseEntity<List<YourEntity>> yourResponse = restTemplate.exchange("https://some-link/your-object-location", 
       HttpMethod.GET, null, new ParameterizedTypeReference<List<YourEntity>>() { 
     }); 
List<YourEntity> entities = yourResponse .getBody(); 
+0

ich lieber nicht, eine Klasse implementieren, weil ich nicht sicher bin, welche Informationen der Dienst zurückkehren, so brauche ich eine Lösung Das erlaubt mir, mit einem Json-Objekt zu arbeiten, so dass ich Informationen mit etwas wie einem angular ngrepeat wiederherstellen konnte ... –