2017-03-06 3 views
0

私はこのコードで春Appのコントローラをしました:@RestControllerレスポンスでList()を出力するには?

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; 
    } 
} 

しかし、すべてで:

@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); 
} 

私はこのコードでも、私の新しい作成されたオブジェクトResponseObjectList<Project>を返すとしようとしましたJSONの返答は次のようになります:{"data":[{}],"error":null}

Projects出力は次のようになります。[Project{id=1, name='Digital project'}]

私のリストをJSONに含まれていない理由を誰が教えてもらえますか?ありがとう!

+1

実際にいくつのプロジェクトが挿入されたかをチェックしましたか?ession.createQuery( "from Project")。list()? –

+0

Hoi Gerrit ;-) http://softwareengineering.stackexchange.com/questions/337319/object-design-for-rest-result-including-error-handlingを参照してください。しばらく前にResponseObjectに関する質問をしましたが、おそらくこれはあなたのために働いています – Jelle

答えて

0

protected Object data;

あなたが好きResponseEntityを返す必要が

protected List<Object> data;

0

に変更:

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

を見ますあなたがスプリングブートを使用している場合、すべてのことが正しくデシリアライズされるクラスパスです。 ResponseObjectクラスは必要ありません。

+0

これはもっと簡単です: '新しいResponseEntity(list、HttpStatus.OK)' –

関連する問題