当前位置: 首页 > 知识库问答 >
问题:

Spring座中的双类型格式化程序

汲睿
2023-03-14

我有类型里程的模型类声明如下

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

    @JsonProperty("mileageTime")
    private long mileageTime;
}

REST控制器方法的代码如下

  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属性设置为Double

m1.setMileageTime(10.0);

大摇大摆的代表会这样

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

正如您可以看到左侧为零的Deicmal Point已被修剪并变成10而不是10.0,是否有一种方法可以使其看起来像10.0而无需将其格式化为字符串?

共有1个答案

柳杰
2023-03-14

您提到的当前代码不会编译,它需要很长的时间,您将以double的形式传递它。

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

@GetMapping("/test")
    public Mileage test() {
        Mileage m1 = new Mileage();
        m1.setMileageTime(10.0);
        m1.setMileageValue(11111.11111);
        return m1;
    }

    static class Mileage  {

        @Getter
        @Setter
        @JsonProperty("mileageValue")
        private double mileageValue;

        @Getter
        @Setter
        @JsonProperty("mileageTime")
        @JsonSerialize(using = DecimalJsonSerializer.class)
        private double mileageTime;
    }

    static class DecimalJsonSerializer extends JsonSerializer<Double> {
        @Override
        public void serialize(Double value, JsonGenerator jgen, SerializerProvider provider)
                throws IOException, JsonProcessingException {
            jgen.writeString( String.format("%.2f", value));
        }
    }

回应:

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

相关问题:

为什么在jackson序列化期间省略了十进制值为零的Double?

 类似资料:
  • URLFormatter 此格式化器让你可以在网格列显示 URL 链接。 它有如下可选参数: 选项名称 描述 UrlFormat URL 的格式。如,在”http://www.site.com/{0}“ 中 {0} 被替换为 UrlProperty 的值。 如果没有指定,连接将依然显示 UrlProperty 的值。 如果 URL 格式以 “~/“ 开头,它将解析为应用程序根。例如,如果格式为 “

  • 我正在玩我的eclipse格式化程序。 我目前被卡住,无法格式化空的新行。 我知道我可以使用CTRL+SHIFT+F。 但是我希望它在文件保存时自动发生。 下面是另一个例子 此外,我想选择是否应该在ex one结构声明后或在花括号后自动缩进为无空行。

  • 我想避免这些000001、0999999等。提前谢谢。

  • 主要内容:Formatter 接口,内置格式化转换器在实际的项目开发中,经常会涉及到一些需要进行格式化的数据,例如金额、日期等。以金额为例,当金额为 10 万元时,在比较正式的场合往往要写成 ;而日期也可以被写作多种格式,例如 、 等。这些数据都要经过一定的格式化处理才能够正常使用。 Formatter 接口 Spring 提供了一个 Formatter<T> 接口, T 表示目标数据类型,它被称为格式化转换器。 Formatter 的作用与 Co

  • 本文向大家介绍PHP格式化MYSQL返回float类型的方法,包括了PHP格式化MYSQL返回float类型的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP格式化MYSQL返回float类型的方法。分享给大家供大家参考,具体如下: PHP 中获取mysql的float字段,echo 输出后,小数部分为包含多个0. 可使用 floatval($num) 将0舍去。 如要保留小数位

  • 问题内容: 如何在GWT中格式化我的字符串? 我做了一个方法 但它抱怨说 不包括格式化程序吗? 问题答案: 更新:在进一步查看此答案之前,请先查看(并投票)约瑟夫·卢斯特的帖子。 看起来这篇文章没有包含格式化器。但是,他们提出了一些替代方案。