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

Most Efficient way to convert jdbctemple result to json?

一种方法是将 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对象吗?

如果您在构建脚本时使用 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);        
    }

}

注意:在上述两种情况下,您需要将对象 class 转换为精确的 class 才能工作。