2016-06-22 35 views
0

一種方法是將List< Map < String, Object>>List(object);下面給出將jdbctemple結果轉換爲json的最有效方法?

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

是否有直接轉換JdbcTemplate的結果轉換成JSON對象中的任何effiecient方式轉換?

+0

使用GSON解析器。返回查詢結果爲String並解析:public static JsonObject getGsonJsonObject(String jsonString)if(StringUtils.isNotBlank(jsonString)){ JsonParser gsonJSONParser = new JsonParser(); return(JsonObject)gsonJSONParser.parse(jsonString); } else { return null; } }' –

回答

3

如果您在構建腳本時使用Maven。添加以下依賴

<!-- 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> 

修改代碼如下所示

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

然而,如果你使用Spring MVC 4+,我會建議你使用@RestController

其中承擔了大部分工作對你來說這裏是你的一個例子,這裏是簡單的例子

@RestController 
    class MyTestClass{ 

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

     return jdbcTemplate.queryForList(query);   
    } 

}

注意:在上述兩種情況下,您需要將Object類轉換爲Exact類才能工作。

相關問題