Java 弹簧座中的双类型格式化程序

Java 弹簧座中的双类型格式化程序,java,spring-restcontroller,Java,Spring Restcontroller,我的车型类型为里程,声明如下 public class Mileage extends Entity { @JsonProperty("mileageValue") private double mileageValue; @JsonProperty("mileageTime") private long mileageTime; } public ResponseEntity<Mileage> getM

我的车型类型为里程,声明如下

public class Mileage extends Entity {
    @JsonProperty("mileageValue")
    private double mileageValue;

    @JsonProperty("mileageTime")
    private long mileageTime;
}
  public ResponseEntity<Mileage> getMileage(@RequestBody GetRequest req) throws Exception {
        Mileage m1 = new Mileage();
        m1.setMileageTime(10);
        m1.setMileageValue(11111.11111);
        return new ResponseEntity<>(m1, HttpStatus.OK);
    }
REST控制器方法的代码如下所示

public class Mileage extends Entity {
    @JsonProperty("mileageValue")
    private double mileageValue;

    @JsonProperty("mileageTime")
    private long mileageTime;
}
  public ResponseEntity<Mileage> getMileage(@RequestBody GetRequest req) throws Exception {
        Mileage m1 = new Mileage();
        m1.setMileageTime(10);
        m1.setMileageValue(11111.11111);
        return new ResponseEntity<>(m1, HttpStatus.OK);
    }
招摇过市的代表会是这样的

 {
  "mileageValue": 11111.11111,
  "mileageTime": 10
}

如您所见,左侧带零的Deicmal点已被修剪,变成10而不是10.0,是否有办法使其看起来像10.0,而不将其格式化为字符串?

您提到的当前代码不会编译它,它需要很长时间,您将其作为双精度传递

请在下面找到我的解决方案:

@GetMapping(“/test”)
公共里程测试(){
里程m1=新里程();
m1.设定里程时间(10.0);
m1.设定里程值(11111.11111);
返回m1;
}
静态等级里程{
@吸气剂
@塞特
@JsonProperty(“里程价值”)
私人双里程价值;
@吸气剂
@塞特
@JsonProperty(“里程时间”)
@JsonSerialize(使用=DecimalJsonSerializer.class)
私人双程飞行时间;
}
静态类DecimalJsonSerializer扩展JsonSerializer{
@凌驾
公共void序列化(双值、JsonGenerator jgen、SerializerProvider提供程序)
抛出IOException、JsonProcessingException{
writeString(String.format(“%.2f”,value));
}
}
答复:

{
    "mileageValue": 11111.11111,
    "mileageTime": "10.00"
}
相关问题: