java - 如何在 Spring MVC 和 Hibernate 中将对象列表转换为 JSON?

标签 java json spring hibernate spring-mvc

我正在使用 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/

相关文章:

c# - 使用 Json.Net 解析 JSON 数组

php - 用PHP多个数组解析JSON到MYSQL表

c# - 将 API 写入文件

java - SpringSocial LinkedIn 集成错误

java - 用这个。或 super 。当调用父类(super class)和子类中存在的方法时

java - 将列表转换为多维 map

java - Android 重定向(委托(delegate)指针)

java - JMS:如何将DLQ中的消息重新传递给主题订阅者?

java - 如何动态调用合格服务上的方法?

Java:继承与依赖注入(inject) "Autowired"