2016-06-22 37 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类才能工作。

相关问题