我正在使用 Spring MVC 和 hibernate 从 MySQL 获取数据。在 Controller 类中,ModelAndView 方法 listEmployees 返回一个 MAP。该方法从 EmployeeService 类获取 Employee 对象列表。我希望此方法从服务类中获取员工对象列表并将其转换为 JSON,或者将其转换为 JSON 并将该数据写入 JSON 文件,以便我可以在 JSP 页面中使用此 JSON 数据。
@RequestMapping(value="/employees", method = RequestMethod.GET)
public @ResponseBody ModelAndView listEmployees() {
Map<String, Object> model = new HashMap<String, Object>();
model.put("employees",prepareListofBean(employeeService.listEmployeess()));
return new ModelAndView("employeesList", model);
}
private List<EmployeeBean> prepareListofBean(List<Employee> employees){
List<EmployeeBean> beans = null;
if(employees != null && !employees.isEmpty()){
beans = new ArrayList<EmployeeBean>();
EmployeeBean bean = null;
for(Employee employee : employees){
bean = new EmployeeBean();
bean.setName(employee.getEmpName());
bean.setId(employee.getEmpId());
bean.setAddress(employee.getEmpAddress());
bean.setSalary(employee.getSalary());
bean.setAge(employee.getEmpAge());
beans.add(bean);
}
}
return beans;
}
编辑
在下面的方法中,我尝试使用 GSON 将列表转换为 JSON,但出现空指针异常。
**@RequestMapping(value="/employees1", method = RequestMethod.GET)
public ModelAndView employeelist() {
Gson gson=new Gson();
gson.toJson(employeeService.listEmployeess());
ModelAndView modelAndView=new ModelAndView();
modelAndView.addObject(gson);
return modelAndView;
}**
上述方法可能有什么错误?
最佳答案
您需要将返回的 json 值分配给 String
对象,然后将其传递给 ModelAndView
。引用Gson.toJson()
并确保您的类 (EmployeeBean
) 是可序列化的
。
@RequestMapping(value = "/employees1", method = RequestMethod.GET)
public ModelAndView employeelist() {
Gson gson = new Gson();
String json = gson.toJson(employeeService.listEmployeess());
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject(json);
return modelAndView;
}
关于java - 如何在 Spring MVC 和 Hibernate 中将对象列表转换为 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32449476/