簡體   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