2017-03-16 47 views
4

我有一個REST控制器返回像這樣的產品列表:春季啓動修改默認JSON響應

電流輸出

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

爲了得到與我們的JS grid庫工作的事情,我需要修改響應的樣子:

所需的輸出

{ "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); 
} 

有一種簡單的方法來修改使用本機Spring庫的JSON響應?

回答

6

您可以將結果對象放到一個帶有「data」鍵和值爲結果的Map中。

map.put("data", result);

然後從靜止方法返回地圖對象。

return ResponseEntity.ok(map);

3

使用org.json庫。 put方法添加或替換對象中的值。

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