将jdbctemple结果转换为json的最有效方法?

时间:2016-06-22 06:50:47

标签: json spring spring-mvc spring-jdbc jdbctemplate

单向是将List< Map < String, Object>>转换为下面的List(object);

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对象?

1 个答案:

答案 0 :(得分:6)

如果您在构建脚本时使用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 4+ MVC,我建议您使用@RestController

这里的大部分工作都是一个例子,这里有一个简单的例子

   @RestController
   class MyTestClass{

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

        return jdbcTemplate.queryForList(query);        
    }

}

注意:在以上两种情况下,您需要将Object类转换为Exact类才能工作。