我在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>
以及我新创建的对象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中吗?谢谢!
答案 0 :(得分:0)
protected Object data;
更改为
protected List<Object> data;
答案 1 :(得分:0)
您需要返回一个ResponseEntity,如:
return new ResponseEntity<List<Project>>(projects, HttpStatus.OK);
如果您在类路径中拥有Jackson,如果您使用Spring启动,那么您所做的一切都将被正确反序列化。您不需要ResponseObject类。