2016-06-22 17 views
0

One Way ist die List< Map < String, Object>> in List(object); Da untenMost Efficient to jdbctemple Ergebnis zu json konvertieren?

List<Map<String, Object>> ls = jdbcTemplate.queryForList(query); 

List<Users> ls_o = new ArrayList<>(ls_o); 
     for (Map<String, Object> row : ls) { 
     ls_o.add(row); 

     } 
return new ResponseEntity<List<User>>(ls_o, HttpStatus.OK); 

Gibt es irgendeine Art und Weise rationell konvertieren die jdbcTemplate in Json Objekt führen direkt zu konvertieren?

+0

Verwenden Sie GSON-Parser. Geben Sie das Abfrageergebnis als String zurück und parsen Sie Folgendes: 'public static JsonObject getGsonJsonObject (Zeichenfolge jsonString) { if (StringUtils.isNotBlank (jsonString)) { JsonParser gsonJSONParser = new JsonParser(); Rückgabe (JsonObject) gsonJSONParser.parse (jsonString); } else { Rückgabewert null; } } ' –

Antwort

3

Wenn Sie Maven verwenden, wie Sie Skript erstellen. Fügen Sie folgende Abhängigkeit

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core --> 
<dependency> 
    <groupId>com.fasterxml.jackson.core</groupId> 
    <artifactId>jackson-core</artifactId> 
    <version>2.7.5</version> 
</dependency> 

Modify-Code wie unten

private final ObjectMapper mapper = new ObjectMapper(); 

    public ResponseEntity myMethod(){ 

    List<Map<String, Object>> ls = jdbcTemplate.queryForList(query);   
    final String str = mapper.writeValueAsString(ls); 
    return new ResponseEntity<List<User>>(str, HttpStatus.OK); 
} 

jedoch angezeigt, wenn Sie Frühling 4+ MVC verwenden, würde ich Ihnen empfehlen @RestController zu verwenden

die den größten Teil der Arbeit erledigt denn hier Sie ein Beispiel für Sie ist hier, einfaches Beispiel

@RestController 
    class MyTestClass{ 

    @RequestMapping("/myMethod") 
    public List<Map<String, Object>> myMethod(){ 

     return jdbcTemplate.queryForList(query);   
    } 

}

Hinweis: In beiden obigen Fällen müssen Sie die Object-Klasse in eine Exact-Klasse konvertieren, um zu arbeiten.