我有一些带有一些数据的实体,它有字段price
.
我有获取所有项目的价格总和的方法。 如果此方法返回 Double,我应该如何实现控制器方法以 JSON 格式获取它?
@GetMapping("/sum")
public ResponseEntity<Double> getSum(){
return ResponseEntity.status(HttpStatus.OK).body(productService.getSum());
}
使用这种方法,我收到没有 JSON 结构的数字作为响应。
假设我们有:123456.0
但我们需要:
{
"sum" : 123456.0
}
class ThatCustomClass {
BigDecimal sum;
}
有不同的方法可以做到这一点。按我偏好的降序排列
用
ResponseEntity<ThatCustomClass>
回复@JBNizet已经解释过了
用那个自定义类来回应。然后使用控制器建议和异常发送 200 以外的任何内容
- 使用哈希图而不是DTO
- 使用字符串操作创建 JSON 字符串(我什至不知道为什么我在这里列出了此选项(
顺便说一句,对于货币操作,不要使用双精度/浮点数,请使用 BigDecimal 代替 http://java-performance.info/bigdecimal-vs-double-in-financial-calculations/