springboot-json转换
springboot 的json数据传输后台返回对象,前台得到为json格式前台请求数据为json,后台⾃动封装为对象
Jackson
springboot中默认依赖了spring-boot-starter-json,所以我们可以不⽤再进⾏配置就可以使⽤。
但是有些时候,我们使⽤某些特殊的数据传输,⽐如Date对象,前台获取到的就是2020-01-07T07:50:27.440+0000格式,可以使
⽤@JsonFormat(pattern = "yyyy-MM-dd")在Date对象中进⾏格式化,但如果对象多了,每⼀个都打注解,就很⿇烦,先变格式,⼀个⼀个改,我们可以⾃定义转换器进⾏格式化:
依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
//springboot ⾃带的json转化配置,可在这统⼀配置格式
@Bean
MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter(){
MappingJackson2HttpMessageConverter converter =new MappingJackson2HttpMessageConverter();
ObjectMapper objectMapper =new ObjectMapper();
objectMapper.setDateFormat(new SimpleDateFormat("yyyy/MM/dd"));
converter.setObjectMapper(objectMapper);
return converter;
}
或者:
//或者只需要配置ObjectMapper
@Bean
ObjectMapper objectMapper(){
ObjectMapper om =new ObjectMapper();
om.setDateFormat(new SimpleDateFormat("yyyy/MM/dd"));
return om;
}
⾃⼰创建转换器,并定义格式,如果我们⾃⼰定义了,springboot的默认配置就会失效这样就可以统⼀管理格式,并⼀劳永逸。
Gson
如果不是使⽤⾃带的Jackson的话,使⽤Gson,只需要除去spring-boot-starter-json依赖导⼊Gson的依赖即可,springboot为Gson也提供了⾃动配置,导⼊依赖即可⽤,⾃定义转换器:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-json</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId&le.code.gson</groupId>
<artifactId>gson</artifactId>
</dependency>
//使⽤GSON的json转换配置
@Bean
GsonHttpMessageConverter gsonHttpMessageConverter(){
GsonHttpMessageConverter converter =new GsonHttpMessageConverter();
GsonBuilder gson =new GsonBuilder();
gson.setDateFormat("yyyy/MM/dd");
converter.ate());
return converter;
}
或者:
@Bean
Gson gson(){
Gson gson =new GsonBuilder().setDateFormat("yyyy/MM/dd").create();
return gson;
}
fastJson
如果要使⽤fastJson为我们的转换器的话,则必须要配置才能使⽤,上⾯两种springboot都提供了默认配置,⽽fastJson则没有任何⽀持,使⽤的话先排除spring-boot-starter-json也就是Jackson的依赖,并导⼊fastJson的依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
fastjson怎么用<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-json</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.58</version>
</dependency>
//使⽤fastjson为项⽬的json转换器必须要配置
@Bean
FastJsonHttpMessageConverter fastJsonHttpMessageConverter(){
FastJsonHttpMessageConverter converter =new FastJsonHttpMessageConverter();
FastJsonConfig fastJsonConfig =new FastJsonConfig();
fastJsonConfig.setDateFormat("yyyy-MM-dd");
converter.setFastJsonConfig(fastJsonConfig);
return converter;
}
否则会返回对象时会报错:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。