【问题标题】:Most Efficient way to convert jdbctemple result to json?将jdbctemple结果转换为json的最有效方法?
【发布时间】:2016-06-22 06:50:46
【问题描述】:

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

【问题讨论】:

  • 使用 GSON 解析器。将查询结果作为字符串返回并解析:public static JsonObject getGsonJsonObject( String jsonString ) { if ( StringUtils.isNotBlank( jsonString ) ) { JsonParser gsonJSONParser = new JsonParser(); return ( JsonObject ) gsonJSONParser.parse( jsonString ); } else { return null; } }

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


【解决方案1】:

如果您在构建脚本时使用 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 类才能工作。

【讨论】:

  • 毫不费力地工作。谢谢!
猜你喜欢
  • 2019-03-08
  • 2021-04-07
  • 2020-01-15
  • 2021-12-24
  • 2018-05-09
  • 2011-10-27
  • 2015-02-19
  • 2015-04-14
  • 1970-01-01
相关资源
最近更新 更多