1. <legend id='K6paS'><style id='K6paS'><dir id='K6paS'><q id='K6paS'></q></dir></style></legend>

        <bdo id='K6paS'></bdo><ul id='K6paS'></ul>
      <i id='K6paS'><tr id='K6paS'><dt id='K6paS'><q id='K6paS'><span id='K6paS'><b id='K6paS'><form id='K6paS'><ins id='K6paS'></ins><ul id='K6paS'></ul><sub id='K6paS'></sub></form><legend id='K6paS'></legend><bdo id='K6paS'><pre id='K6paS'><center id='K6paS'></center></pre></bdo></b><th id='K6paS'></th></span></q></dt></tr></i><div id='K6paS'><tfoot id='K6paS'></tfoot><dl id='K6paS'><fieldset id='K6paS'></fieldset></dl></div>
    2. <tfoot id='K6paS'></tfoot>

      1. <small id='K6paS'></small><noframes id='K6paS'>

      2. jackson使用@JsonSerialize格式化BigDecimal解决.00不显示问题

        当使用jackson序列化BigDecimal时,有时候会出现数字后的.00不显示的问题,这是因为jackson默认会去掉BigDecimal末尾的0,为了解决这个问题,我们可以使用@JsonSerialize注解指定一个自定义的格式化器。
        • <legend id='6Xitj'><style id='6Xitj'><dir id='6Xitj'><q id='6Xitj'></q></dir></style></legend>

            <small id='6Xitj'></small><noframes id='6Xitj'>

            • <bdo id='6Xitj'></bdo><ul id='6Xitj'></ul>

              <i id='6Xitj'><tr id='6Xitj'><dt id='6Xitj'><q id='6Xitj'><span id='6Xitj'><b id='6Xitj'><form id='6Xitj'><ins id='6Xitj'></ins><ul id='6Xitj'></ul><sub id='6Xitj'></sub></form><legend id='6Xitj'></legend><bdo id='6Xitj'><pre id='6Xitj'><center id='6Xitj'></center></pre></bdo></b><th id='6Xitj'></th></span></q></dt></tr></i><div id='6Xitj'><tfoot id='6Xitj'></tfoot><dl id='6Xitj'><fieldset id='6Xitj'></fieldset></dl></div>
                <tbody id='6Xitj'></tbody>

              1. <tfoot id='6Xitj'></tfoot>

                  当使用jackson序列化BigDecimal时,有时候会出现数字后的.00不显示的问题,这是因为jackson默认会去掉BigDecimal末尾的0,为了解决这个问题,我们可以使用@JsonSerialize注解指定一个自定义的格式化器。

                  下面是格式化BigDecimal的示例代码:

                  首先,我们需要定义一个自定义的格式化器,这里使用了DecimalFormat的格式化方式,保留两位小数,并强制显示末尾的0:

                  import com.fasterxml.jackson.core.JsonGenerator;
                  import com.fasterxml.jackson.databind.JsonSerializer;
                  import com.fasterxml.jackson.databind.SerializerProvider;
                  
                  import java.io.IOException;
                  import java.math.BigDecimal;
                  import java.math.RoundingMode;
                  import java.text.DecimalFormat;
                  
                  public class BigDecimalSerialize extends JsonSerializer<BigDecimal> {
                  
                      private static final DecimalFormat DECIMAL_FORMAT = new DecimalFormat("#.00");
                  
                      @Override
                      public void serialize(BigDecimal value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
                          if (value == null) {
                              gen.writeNull();
                          } else {
                              BigDecimal formatNum = value.setScale(2, RoundingMode.DOWN);
                              String formattedValue = DECIMAL_FORMAT.format(formatNum);
                              gen.writeString(formattedValue);
                          }
                      }
                  }
                  

                  接下来,我们需要在需要格式化的BigDecimal变量上使用@JsonSerialize注解,指定我们定义的自定义格式化器:

                  import com.fasterxml.jackson.databind.annotation.JsonSerialize;
                  
                  import java.math.BigDecimal;
                  
                  public class Order {
                      private String orderNo;
                      @JsonSerialize(using = BigDecimalSerialize.class)
                      private BigDecimal totalPrice;
                  
                      // 省略getter、setter方法
                  }
                  

                  此时,当使用jackson序列化Order类时,totalPrice的值将会被格式化成指定的格式,并且末尾的.00也会显示出来。

                  示例1,创建一个Order对象,totalPrice为BigDecimal类型,并赋值为9.00:

                  Order order = new Order();
                  order.setOrderNo("2019070101");
                  order.setTotalPrice(new BigDecimal("9.00"));
                  

                  如果不使用自定义的格式化器,使用jackson的默认处理方式序列化Order对象,那么totalPrice将被显示为9,而不是9.00。

                  示例2,创建一个Order对象,totalPrice为BigDecimal类型,并赋值为9.005:

                  Order order = new Order();
                  order.setOrderNo("2019070101");
                  order.setTotalPrice(new BigDecimal("9.005"));
                  

                  使用自定义的格式化器,将totalPrice的值格式化后序列化成JSON字符串,结果为:

                  {
                    "orderNo": "2019070101",
                    "totalPrice": "9.01"
                  }
                  

                  可以看到,totalPrice的值被保留了两位小数,并显示了末尾的0。

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  Lambda表达式是Java 8中引入的新特性之一,它是一个匿名函数,可以捕获参数并表现为一个代码块,而不像方法一样需要一个固定的名称。它主要用于传递行为或代码块以及事件处理等操作。
                  下面为您详细讲解基于Java的回调函数。
                  在Java中,equals()是用来比较两个对象是否相等的函数。equals()方法是Object类中的方法,因此所有Java类都包含equals()方法。在默认情况下,equals()方法比较对象的引用地址是否相同,即两个对象是否是同一个实例。但是,我们可以覆盖equals()方法,来定义自
                  JavaWeb是Java在Web领域的应用,是目前非常热门的技术之一。但是JavaWeb涉及到的技术非常广泛,初学者很容易迷失方向。本文总结了JavaWeb的基础知识,为初学者提供了一份学习笔记分享,希望能够帮助大家快速入门。
                  在Java编程中,字符串操作是很常见的,而替换字符串是其中常用的操作之一。Java提供了三种函数用于替换字符串:replace、replaceAll和replaceFirst。这篇文章将为您详细介绍它们的用法。
                  进制是数学中一种表示数值大小的方法,常见的进制有10进制、2进制、16进制等。
                  <legend id='q5QBu'><style id='q5QBu'><dir id='q5QBu'><q id='q5QBu'></q></dir></style></legend>
                1. <tfoot id='q5QBu'></tfoot>

                        <bdo id='q5QBu'></bdo><ul id='q5QBu'></ul>

                        <small id='q5QBu'></small><noframes id='q5QBu'>

                          <tbody id='q5QBu'></tbody>
                        <i id='q5QBu'><tr id='q5QBu'><dt id='q5QBu'><q id='q5QBu'><span id='q5QBu'><b id='q5QBu'><form id='q5QBu'><ins id='q5QBu'></ins><ul id='q5QBu'></ul><sub id='q5QBu'></sub></form><legend id='q5QBu'></legend><bdo id='q5QBu'><pre id='q5QBu'><center id='q5QBu'></center></pre></bdo></b><th id='q5QBu'></th></span></q></dt></tr></i><div id='q5QBu'><tfoot id='q5QBu'></tfoot><dl id='q5QBu'><fieldset id='q5QBu'></fieldset></dl></div>