大家好!
有人可以帮助我,如何将我的 HQL 查询结果转换为带有对象列表的 JSON 并通过 REST 服务获取它。
这是我的服务方法,它返回 qyery 结果列表:
@Override
public List<Object[]> getAllDepartments() {
List<Object[]> list;
Query query = entityManager.createQuery("SELECT dp.name, avg (wr.salary) FROM Worker wr join wr.department dp GROUP BY dp.name");
list = query.getResultList();
return list;
}
还有我的 Spring RESTfull Controller :
@RequestMapping(value = "/all", method = RequestMethod.GET)
@ResponseBody
public JsonNode getAllDeps() {
List<Object[]> list = departmentService.getAllDepartments();
ObjectMapper objectMapper = new ObjectMapper();
Map<String, Integer> resultMap = new HashMap<String, Integer>(list.size());
for (Object[] result : list)
resultMap.put((String)result[0], ((Double)result[1]).intValue() );
final JsonNode json = objectMapper.valueToTree(resultMap);
return json;
}
现在我的服务用 json 来响应我的数据,如下所示: {“安全”:1500,“经济”:1850,“IT”:2000}
但我需要那个(对象列表):
[{name:"安全",工资:"1500"},{name:"经济",工资:1850},{name:"IT",工资:2000}]
感谢您的帮助。
最佳答案
只需从 Controller 方法返回列表
@RequestMapping(value = "/all", method = RequestMethod.GET)
@ResponseBody
public List<Object[]> getAllDeps() {
List<Object[]> list = departmentService.getAllDepartments();
return list;
}
@ResponseBody
注释会为您进行转换。
关于java - 将 List<Object[]> 转换为 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24819442/