Spring MVC @ResponseBody返回列表在使用hibernate时没有正确的json响应(没有键和括号括号)但是如果不使用hibernate则获得正确的json响应。
DAO
public List getStudentData(){
String hql= "select s.id, s.name, s.email from Student s";
Query query= sessionFactory.getCurrentSession().createQuery(hql);
List list= query.list();
return list;
}
控制器
@RequestMapping(value="/fetchAllData" , method=RequestMethod.GET)
public @ResponseBody List studentContainer1(HttpServletRequest response){
return ss.getStudentData();
}
JSON(我收到)
[[1,"pratyush","pratyush.ankit@gmail.com"]]
但我需要回复如下:
[{"id":1,"name":"Pratyush","email":"pratyush.ankit@gmail.com"}]
答案 0 :(得分:0)
您应该将DAO功能更改为:
public List<Student> getStudentData(){
String hql = "from Student";
Query query = sessionFactory.getCurrentSession().createQuery(hql);
List<Student> list = query.list();
return list;
}
您定义hql查询的方式是,它将以[id,name,email]的形式返回List
个数组。并且以后将它转换为适当的json是不可能的(标签将在那时丢失)。您想要的是让getStudentData()
返回List
个Student
个对象。