2017-03-16 49 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);