如何在 json 输出中将 Double 转换为字符串

How to convert Double to string in json output

我有一个对象如下:

public class Statics {
private Double sum;
private Double avg;
private Double max ;
private Double min ;
private Long count = Long.valueOf(0);//getter and setters and constructrures}

我有一个控制器,其中 return 这个对象:

  @GetMapping("/statistics")
@ResponseStatus(HttpStatus.OK)
public ResponseEntity<?> getStatics(){

    return ResponseEntity.status(HttpStatus.OK).body(staticService.getStatics());
}

服务实现是:

        private Statics statistics;
        
                public Statics getStatics() {
                if (statistics == null) {
                    Dou
    
    ble Zero =BigDecimal.valueOf(0.00).setScale(2, RoundingMode.HALF_UP).doubleValue();
                statistics = new Statics(Zero, Zero, Zero, Zero, Long.valueOf(0));
            }
            return statistics;
        }
 @Async
    public void statisticAnalysis() {

        DoubleSummaryStatistics stat = TRANSACTION_LIST.stream().mapToDouble(Transaction::getAmount)
                .summaryStatistics();
        statistics = new Statics(BigDecimal.valueOf(stat.getSum()).setScale(2, RoundingMode.HALF_UP).doubleValue(), BigDecimal.valueOf(stat.getAverage()).setScale(2, RoundingMode.HALF_UP).doubleValue(), BigDecimal.valueOf(stat.getMax()).setScale(2, RoundingMode.HALF_UP).doubleValue(), BigDecimal.valueOf(stat.getMin()).setScale(2, RoundingMode.HALF_UP).doubleValue(), stat.getCount());

    }

我希望我的输出像我将在下面附加的法师中的预期输出,[“总和”:双引号中的“100”]但它总是 return 没有引号的数字,我应该怎么办?

使用 String 而不是 Double 进行计算,将值转换为 String.ValueOf(sum) 并将值设置为 statistics POJO。

像下面那样转换你的 POJO

public class Statics {
private String sum;
private String avg;
private String max;
private String min;
private Long count = Long.valueOf(0);//getter and setters and constructrures
}
    public class Statics {
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Double sum;
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Double avg;
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Double max ;
    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Double min ;
    private Long count = Long.valueOf(0);
}

使用此注释:@JsonFormat(shape = JsonFormat.Shape.STRING) 解决了我的问题!