Spring Boot fastJSON的使用

网友投稿 282 2022-11-18

Spring Boot fastJSON的使用

springBoot,默认使用的json解析框架是Jackson。

虽然jackson能够满足json的解析,如果想使用熟悉的alibaba的fastjon,我们只需要在pom文件中配置maven依赖就好。com.alibabafastjson1.2.15版本可根据自己需要查询,网址:​​​WebMvcConfigurerAdapter,且覆盖configureMessageConverters。方法二:在启动类中,注入Bean:HttpMessageConverters。

代码如下:package org.lzm.springbootnew;import com.alibaba.fastjson.serializer.SerializerFeature;import com.alibaba.fastjson.support.config.FastJsonConfig;import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.autoconfigure.web.HttpMessageConverters;import org.springframework.context.annotation.Bean;import org.springframework.org.springframework.org.springframework.scheduling.annotation.EnableScheduling;import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

import java.util.ArrayList;import java.util.List;

​​@EnableScheduling​​​ //定时任务​​​@SpringBootApplication​​public class SpringbootNewApplication extends WebMvcConfigurerAdapter {

​​public static void main(String[] args) {​​​​ SpringApplication.run(SpringbootNewApplication.class, args);​​​​}​​​​ /*​​​​ * // 方法一:extends WebMvcConfigurerAdapter​​​​ */​​​​@Override​​​​public void configureMessageConverters(List> converters) {​​​​ super.configureMessageConverters(converters);​​​​ //1、先定义一个convert转换消息的对象​​​​ FastJsonHttpMessageConverter fastConverter=new FastJsonHttpMessageConverter();​​​​ //2、添加fastjson的配置信息,比如是否要格式化返回的json数据;​​​​ FastJsonConfig fastJsonConfig=new FastJsonConfig();​​​​ fastJsonConfig.setSerializerFeatures(​​​​ //是否需要格式化​​​​ SerializerFeature.PrettyFormat​​​​ );​​​​ //附加:处理中文乱码(后期添加)​​​​ List mediaTypeList=new ArrayList();​​​​ mediaTypeList.add(MediaType.APPLICATION_JSON_UTF8);​​​​ fastConverter.setSupportedMediaTypes(mediaTypeList);​​​​ //3、在convert中添加配置信息​​​​ fastConverter.setFastJsonConfig(fastJsonConfig);​​​​ //4、将convert添加到converters​​​​ converters.add(fastConverter);​​​​}​​​​/*​​​​ * 方法二:在启动类中,注入Bean:HttpMessageConverters​​​​ */​​​​@Bean​​​​public HttpMessageConverters fastJsonHttpMessageConverters(){​​​​ //1、先定义一个convert转换消息的对象​​​​ FastJsonHttpMessageConverter fastConverter=new FastJsonHttpMessageConverter();​​​​ //2、添加fastjson的配置信息,比如是否要格式化返回的json数据;​​​​ FastJsonConfig fastJsonConfig=new FastJsonConfig();​​​​ fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);​​​​ //附加:处理中文乱码​​​​ List fastMedisTypes = new ArrayList();​​​​ fastMedisTypes.add(MediaType.APPLICATION_JSON_UTF8);​​​​ fastConverter.setSupportedMediaTypes(fastMedisTypes);​​​​ //3、在convert中添加配置信息​​​​ fastConverter.setFastJsonConfig(fastJsonConfig);​​​​ HttpMessageConverter converter=fastConverter;​​​​ return new HttpMessageConverters(converter);​​​​}​​

}其实代码的核心是相同的,这是调取的方式不同而已。两种方式都可以满足我们对于fastjson的依赖使用。

下面使用​​@JSONField​​​()注解在实体类中进行验证代码如下。​​​@JSONField​​​(format = “yyyy-MM-dd”)private Date birthday;Controller中代码如下。​​​@RequestMapping​​​(“/save”)public Student save(){Student student=new Student();student.setName(“婷婷”);student.setAge(23);student.setSex(“女”);student.setBirthday(new Date());studentService.save(student);return student;}浏览器返回结果:{“age”:23,“birthday”:”2018-07-10”,“id”:97,“name”:”婷婷”,“sex”:”女”}除此之外,我们还可以通过​​​@JSONField​​​(serialize = false)来决定字段的显示与否。设置如下。​​​@JSONField​​​(serialize = false)private Date birthday;如果这样设置浏览器返回结果如下,birthday将不再显示。{“age”:23,“id”:97,“name”:”婷婷”,“sex”:”女”}

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SpringMVC实现RESTful风格:@PathVariable注解的使用方式
下一篇:ARM芯片型号选择,给初学者参考
相关文章

 发表评论

暂时没有评论,来抢沙发吧~