2017-03-16 8 views
4

は、私はそうのような製品のリストを返すRESTコントローラを持っています私が見えるように応答を修正する必要があります。春ブーツの変更デフォルトJSONレスポンス

所望の出力

{ "data" : 
    [ 
     { 
      "id":1, 
      "name":"Money market" 
     }, 
     { 
      "id":2, 
      "name":"Certificate of Deposit" 
     }, 
     { 
      "id":3, 
      "name":"Personal Savings" 
     } 
    ] 
} 

コントローラ

@RequestMapping(value = "/api/products", method = RequestMethod.GET) 
public ResponseEntity<?> getAllProducts() { 

    List<Product> result = productService.findAll(); 
    return ResponseEntity.ok(result); 
} 

ネイティブ春のライブラリを使用してJSONレスポンスを変更する簡単な方法はありますか?

答えて

6

キー "data"と結果の値を持つMapに結果オブジェクトを配置できます。

map.put("data", result);

その後、残りのメソッドからマップオブジェクトを返します。

return ResponseEntity.ok(map);

3

org.jsonライブラリを使用します。 putメソッドは、オブジェクトの値を追加または置換します。

JSONObject json = new JSONObject(); 
json.put("data", result);