繁体   English   中英

如何在@RestController响应中打印List()?

[英]How to print List() in @RestController Response?

我在Spring App中有一个使用以下代码的控制器:

@RequestMapping("/")
@ResponseBody
public ResponseObject index(){
    System.out.println(this.sf);
    Session session = sf.openSession();
    List<Project> projects = session.createQuery("from Project").list();
    session.close();
    System.out.println(projects);
    return new ResponseObject(projects);
}

我试图用以下代码返回List<Project>以及我新创建的Object ResponseObject

public class ResponseObject {
    protected Object data;
    protected Object error;

    public ResponseObject(Object data) {
        this.data = data;
    }

    public Object getData() {
        return data;
    }

    public void setData(Object data) {
        this.data = data;
    }

    public Object getError() {
        return error;
    }

    public void setError(Object error) {
        this.error = error;
    }
}

但是在所有情况下,我的JSON Reponse都看起来像: {"data":[{}],"error":null}

Projects输出为: [Project{id=1, name='Digital project'}]

谁能告诉我为什么我的列表未包含在JSON中? 谢谢!

protected Object data;

改成

protected List<Object> data;

您需要返回一个ResponseEntity,如:

return new ResponseEntity<List<Project>>(projects, HttpStatus.OK);

参见http://docs.spring.io/autorepo/docs/spring/4.0.2.RELEASE/javadoc-api/org/springframework/http/ResponseEntity.html

如果您在类路径中有Jackson,那么如果您使用的是Spring boot,则可以正确地反序列化所有操作。 您不需要ResponseObject类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM