当前位置: 首页 > news >正文

广德做网站网站推广软件费用是多少

广德做网站,网站推广软件费用是多少,什么是理财北京网站建设公司,个体工商户网上注销在很多场景下,我们需要对BigDecimal类型的数据进行特殊处理,比如保留三位小数。Spring Boot使用Jackson作为默认的JSON序列化工具,我们可以通过自定义Jackson的序列化器(Serializer)来实现,下面将详细介绍实…

在很多场景下,我们需要对BigDecimal类型的数据进行特殊处理,比如保留三位小数。Spring Boot使用Jackson作为默认的JSON序列化工具,我们可以通过自定义Jackson的序列化器(Serializer)来实现,下面将详细介绍实现步骤。


文章目录

    • 1. 创建一个自定义序列化类
    • 2. 在需要的字段上使用注解
    • 3. 测试
    • 全局生效的配置方式

1. 创建一个自定义序列化类

首先,我们需要创建一个自定义序列化器类,这个类需要继承com.fasterxml.jackson.databind.JsonSerializer<T>这个类,并重写serialize方法。

这个方法的作用就是告诉Jackson如何将Java对象转换为JSON。

创建一个类,我们可以将其命名为CustomBigDecimalSerialize, 修改如下:

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;public class CustomBigDecimalSerializer extends JsonSerializer<BigDecimal> {@Overridepublic void serialize(BigDecimal value, JsonGenerator gen, SerializerProvider serializers) throws IOException {if (value != null) {// 将BigDecimal保留3位小数,注意需要四舍五入BigDecimal decimal = value.setScale(3, BigDecimal.ROUND_HALF_UP);gen.writeNumber(decimal);}}
}

上述代码中,gen.writeNumber(decimal)就是将处理后的数据写入JSON中。

2. 在需要的字段上使用注解

我们需要在对应的BigDecimal字段上使用@JsonIgnore注解,来告诉Jackson使用这个新的序列化器,代码如下:

import com.fasterxml.jackson.databind.annotation.JsonSerialize;public class ExampleEntity {@JsonSerialize(using = CustomBigDecimalSerializer.class)private BigDecimal number;// getters and setters...
}

这样一来,每当Jackson试图将这个类实例化为JSON时,它就会使用我们刚刚创建的CustomBigDecimalSerializer进行处理。

3. 测试

我们可以通过一个简单的Controller来进行测试:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;@RestController
@RequestMapping("/api")
public class TestController {@GetMapping("/test")public ExampleEntity test() {ExampleEntity exampleEntity = new ExampleEntity();exampleEntity.setNumber(new BigDecimal("123.45678"));return exampleEntity;}
}

运行项目,访问"http://localhost:8080/api/test",可以看见返回的json串中BigDecimal类型的number字段已经被处理为保留3位小数的格式。

以上就是自定义Spring Boot中BigDecimal的序列化方式的完整过程,通过自定义的序列化器,我们可以灵活地控制序列化的过程,满足各种各样的需求。


全局生效的配置方式

确实,您可以通过自定义Jackson ObjectMapperModule,将此序列化器全局应用到所有的BigDecimal字段。

以下是实现步骤:

  1. 创建一个配置类
@Configuration
public class JacksonConfig {
}
  1. 在配置类中,定义并配置一个ObjectMapper Bean:
@Bean
public ObjectMapper objectMapper(){ObjectMapper mapper = new ObjectMapper();SimpleModule module = new SimpleModule();module.addSerializer(BigDecimal.class, new CustomBigDecimalSerializer());mapper.registerModule(module);return mapper;
}

SimpleModule是Jackson中的一个功能,它可以让我们将自定义的序列化器加入到ObjectMapper中。如上,我们创建了一个新的SimpleModule,然后通过 addSerializer 方法添加了我们自定义的BigDecimal序列化器,最后将这个模块注册到ObjectMapper中。

这样,Jackson在序列化BigDecimal字段时,将全局使用我们自定义的序列化器。

需要注意的是,@Bean注解的ObjectMapper将覆盖Spring Boot的默认ObjectMapper,这意味着所有Jackson的自动配置都将失效,您需要自行配置,或者使用Jackson2ObjectMapperBuilder来保留Spring Boot的自动配置:

@Bean
public ObjectMapper objectMapper(Jackson2ObjectMapperBuilder builder){ObjectMapper mapper = builder.createXmlMapper(false).build();SimpleModule module = new SimpleModule();module.addSerializer(BigDecimal.class, new CustomBigDecimalSerializer());mapper.registerModule(module);return mapper;
}

以上,就是如何将自定义的BigDecimal序列化器全局配置到Spring Boot项目中的所有BigDecimal字段。

http://www.hkea.cn/news/473725/

相关文章:

  • 站长工具seo综合查询权重百度在线搜索
  • 伊犁网站建设评价怎样才能上百度
  • 房地产网站建设方案百度实名认证
  • 做外贸可以在哪些网站注册网络项目免费的资源网
  • 中国建设银行信用卡网站首页青岛关键词优化平台
  • 阿里云网站建设考试题目长沙网站推广服务公司
  • 甘肃建设项目审批权限网站俄罗斯搜索引擎yandex官网入口
  • 网站建设公司新员工培训ppt模板百度热门搜索排行榜
  • 仿魔客吧网站模板网址大全是ie浏览器吗
  • 网站产品后台界面怎么做湖南关键词排名推广
  • 网站数据每隔几秒切换怎么做的湖南百度seo排名点击软件
  • 网站制作先学什么百度新闻下载安装
  • 河南省网站建设哪家好免费观看行情软件网站进入
  • 粘合剂东莞网站建设体育热点新闻
  • 百度网站排名关键词整站优化培训网站建设
  • 网络平台代理seo外包 杭州
  • 东方头条网站源码免费推广软件工具
  • 北京网站建设公司分享网站改版注意事项流程优化四个方法
  • 案例学 网页设计与网站建设手机百度seo快速排名
  • 江门网站建设总部电话产品推广渠道有哪些
  • 网站建设全攻略站长之家ping检测
  • 导航网站 cmsgoogle chrome谷歌浏览器
  • wordpress看其他人博客优化师是做什么的
  • 现在哪个网站还做白拿2021小说排行榜百度风云榜
  • 网站流量seo提升seo排名的方法
  • 做html网站模板下载地址网站页面布局和样式设计
  • 公司网站邮箱费用磁力宅在线搜种子
  • wordpress 缺少临时文件夹刷关键词优化排名
  • 做网站要有什么团队淘宝关键词排名查询工具
  • 开源门户网站源码宁波谷歌seo