[英]how to return json objects for list<POJO> in RestController
我有一个宁静的web服务,返回的pojo对象列表没有生成正确的json格式。
以下是不返回json对象的代码
@RequestMapping("/getThisWeekPlan")
public List<ShiftPlannerView> getThisWeekPlan() {
return getShiftPlanRepo.fetchThisWeekShiftPlan();
}
我的POJO,其中使用namedquery使用Hibernate从JPA设置结果
public class ShiftPlannerView {
public ShiftPlannerView() {
}
private Date shiftPlannerDate;
private String resourceName;
private String shiftName;
public ShiftPlannerView(Date shiftPlannerDate, String resourceName, String shiftName) {
super();
this.shiftPlannerDate = shiftPlannerDate;
this.resourceName = resourceName;
this.shiftName = shiftName;
}
public Date getShiftPlannerDate() {
return shiftPlannerDate;
}
public void setShiftPlannerDate(Date shiftPlannerDate) {
this.shiftPlannerDate = shiftPlannerDate;
}
public String getResourceName() {
return resourceName;
}
public void setResourceName(String resourceName) {
this.resourceName = resourceName;
}
public String getShiftName() {
return shiftName;
}
public void setShiftName(String shiftName) {
this.shiftName = shiftName;
}
@Override
public String toString() {
return "ShiftPlannerView [shiftPlannerDate=" + shiftPlannerDate + ", resourceName=" + resourceName
+ ", shiftName=" + shiftName + "]";
}
}
数据库调用
@Repository
公共类GetShiftPlanRepoImpl实现GetShiftPlanRepo {
@PersistenceContext
EntityManager em;
@Override
public List<ShiftPlannerView> fetchThisWeekShiftPlan() {
List<ShiftPlannerView> result= em.createNamedQuery("fetchByShiftPlannerThisWeek")
.getResultList();
return result;
}
}
以下是响应:
[
[
"2018-04-16",
"Elias",
"I"
],
[
"2018-04-16",
"Sithik",
"II"
],
[
"2018-04-17",
"Vikram Boya",
"I"
],
[
以下代码更改为我带来了预期的响应
@Override
public List<ShiftPlannerView> fetchThisWeekShiftPlan() {
List<ShiftPlannerView> listOfShiftPlannerView=new ArrayList<>();
try {
Query q= em.createNativeQuery(ShiftPlannerConstants.THISWEEKSHIFTPLANQUERY);
List<Object[]> result=q.getResultList();
for(Object[] row : result){
ShiftPlannerView emp = new ShiftPlannerView();
Date workingDays = sdf.parse(row[0].toString());
emp.setShiftPlannerDate(workingDays);
emp.setResourceName(row[1].toString());
emp.setShiftName(row[2].toString());
listOfShiftPlannerView.add(emp);
}
}catch (Exception e) {
e.printStackTrace();
}
感谢JB!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.