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

Kun*_*tra 2 spring json spring-mvc spring-jdbc jdbctemplate

一种方法是转换List< Map < String, Object>>List(object);Given Below

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);
Run Code Online (Sandbox Code Playgroud)

是否有任何有效的方法直接将jdbcTemplate结果转换为json对象?

Kar*_*sad 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>
Run Code Online (Sandbox Code Playgroud)

修改代码如下所示

   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);
}
Run Code Online (Sandbox Code Playgroud)

但是,如果您使用的是Spring 4+ MVC,我建议您使用@RestController

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

   @RestController
   class MyTestClass{

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

        return jdbcTemplate.queryForList(query);        
    }
Run Code Online (Sandbox Code Playgroud)

}

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