单向是将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对象?
答案 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类才能工作。