如何在 Spring 框架中从基元类型创建 JSON 对象?



我有一些带有一些数据的实体,它有字段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;
}

有不同的方法可以做到这一点。按我偏好的降序排列

  1. ResponseEntity<ThatCustomClass>回复

    @JBNizet已经解释过了

  2. 用那个自定义类来回应。然后使用控制器建议和异常发送 200 以外的任何内容

  3. 使用哈希图而不是DTO
  4. 使用字符串操作创建 JSON 字符串(我什至不知道为什么我在这里列出了此选项(

顺便说一句,对于货币操作,不要使用双精度/浮点数,请使用 BigDecimal 代替 http://java-performance.info/bigdecimal-vs-double-in-financial-calculations/

最新更新