Java 如何为列表返回json对象<;POJO>;在RestController中

Java 如何为列表返回json对象<;POJO>;在RestController中,java,json,rest,spring-boot,Java,Json,Rest,Spring Boot,我有一个RESTfulWebService返回的pojo对象列表,它没有生成正确的json格式 下面是不返回json对象的代码 @RequestMapping("/getThisWeekPlan") public List<ShiftPlannerView> getThisWeekPlan() { return getShiftPlanRepo.fetchThisWeekShiftPlan(); } 数据库呼叫 @Repository 公共类GetShiftPlanRe

我有一个RESTfulWebService返回的pojo对象列表,它没有生成正确的json格式

下面是不返回json对象的代码

@RequestMapping("/getThisWeekPlan")
public List<ShiftPlannerView> getThisWeekPlan() {

    return getShiftPlanRepo.fetchThisWeekShiftPlan();
}
数据库呼叫

@Repository
公共类GetShiftPlanRepoImpl实现GetShiftPlanRepo{

@PersistenceContext
EntityManager em;

@Override
public List<ShiftPlannerView> fetchThisWeekShiftPlan() {

    List<ShiftPlannerView> result= em.createNamedQuery("fetchByShiftPlannerThisWeek")
            .getResultList();
    return result;
}

以下代码更改给我带来了预期的响应

@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();
    }
@覆盖
公共列表FetchThisWeekShift计划(){
List listOfShiftPlannerView=新建ArrayList();
试一试{
Query q=em.createNativeQuery(ShiftPlannerConstants.THISWEEKSHIFTPLANQUERY);
List result=q.getResultList();
对于(对象[]行:结果){
ShiftPlannerView emp=新的ShiftPlannerView();
Date workingDays=sdf.parse(行[0].toString());
环境管理计划日期(工作日);
emp.setResourceName(行[1].toString());
emp.setShift名称(行[2].toString());
listOfShiftPlannerView.add(emp);
}
}捕获(例外e){
e、 printStackTrace();
}

感谢JB!

您得到的答复是什么?@Ossin我的问题的最后一部分是我的答复,我现在已经对其进行了编辑。您可以编辑您的问题以包括整个POJO(包括getter和setter)吗?您的命名查询可能实际上不返回ShiftPlannerView的实例,而是返回对象数组。很有可能。请同时包括JPQL命名的query
fetchByShiftPlannerThisWeek
。我认为您选择的不是哪些对象,而是单个列。
 [
    [
        "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();
    }