我使用Spring MVC和hibernate从MySQL获取数据。在控制器类中,ModelAndView方法listEmployees正在返回MAP。该方法从EmployeeService类获取Employee对象的列表。我希望此方法从Service类中获取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,但是获得了空指针Exception。
**@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;
}**
上述方法可能出现什么问题?
答案 0 :(得分:1)
您需要将返回的json值分配给String
对象,然后将其传递给ModelAndView
。请参阅Gson.toJson()
并确保您的班级(EmployeeBean
)为serializable
。
@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;
}