SpringBoot 返回参数为null,不返回的处理
SpringBoot 整合 fastjson
Springboot处理返回的参数为null、或者不返回
一、通过继承WebMvcConfigurerAdapter,重写configureMessageConverters方法实现
@Configuration public class fastJsonConfig extends WebMvcConfigurerAdapter { @Autowired private LogCostInterceptor logCostInterceptor; /** * 使用阿里 fastjson 作为JSON MessageConverter * @param converters */ @Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter(); FastJsonConfig config = new FastJsonConfig(); config.setSerializerFeatures( //json格式输出 SerializerFeature.PrettyFormat, // 保留map为空的字段 SerializerFeature.WriteMapNullValue, // 将String类型的null转成""形式 SerializerFeature.WriteNullStringAsEmpty, // 将Number类型的null转成0,也可以理解为Integer SerializerFeature.WriteNullNumberAsZero, // 将List类型的null转成[],而不是“”” SerializerFeature.WriteNullListAsEmpty, // Boolean类型的null转成false SerializerFeature.WriteNullBooleanAsFalse, // 处理可能循环引用的问题 SerializerFeature.DisableCircularReferenceDetect); converter.setFastJsonConfig(config); converter.setDefaultCharset(Charset.forName("UTF-8")); List<MediaType> mediaTypeList = new ArrayList<>(); mediaTypeList.add(MediaType.APPLICATION_JSON); converter.setSupportedMediaTypes(mediaTypeList); converters.add(converter); } }
二、在Springboot启动类中
@Bean public HttpMessageConverters fastJsonConverters() { FastJsonHttpMessageConverter4 fastConverter = new FastJsonHttpMessageConverter4(); FastJsonConfig fastJsonConfig = new FastJsonConfig(); fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat, SerializerFeature.IgnoreNonFieldGetter, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteNullStringAsEmpty); fastConverter.setFastJsonConfig(fastJsonConfig); List supportedMediaTypes = new ArrayList(); supportedMediaTypes.add(new MediaType("text", "json", Charset.forName("utf8"))); supportedMediaTypes.add(new MediaType("application", "json", Charset.forName("utf8"))); fastConverter.setSupportedMediaTypes(supportedMediaTypes); HttpMessageConverter<?> converter = fastConverter; return new HttpMessageConverters(converter); }
三、 在实体类中,添加: @JSONField注解,如果为false,接口中不会返回这个字段。
@JSONField(serialize = false) private String password;
源码获取:
github
欢迎关注公众号,查看更多内容 :

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
《阿里云前端技术周刊》第十六期
作者:@月七(yueqi.gc) 校对:@亦逊(eason.ym) @月良(jason.czq) 知乎:阿里云中台前端/全栈团队专栏Github:阿里云前端技术周刊 给我们投稿:传送门参与交流:传送门 前端速报 Optional Chaining 和 Nullish Coalescing 两大 javascript 新特性进入 stage3 阶段,更优雅地处理 undefined 和 null React 16.9 早期 alpha 版本可以尝鲜啦!临时版本号 0.0.0-db3ae32b8 Electron 6.0 版本发布,首次和 chrome 稳定版本同一天发布,了解更多 趣前端 face-api.js:一款可以在浏览器中运行的人脸识别库,demo 戳我 用 139 个字节的 javascript 代码实现一个黑洞特效,传送门 React 混
- 下一篇
数据结构(1):使用面向对象模拟数组
数组是一种常用的数据结构,数组具有不可变性,创建后的数组的长度固定,通过索引访问数组中的元素,访问速度快,删除添加效率低。 通过面向对象模拟数组,模拟的数组具有以下功能: 添加新元素 展示 查找元素所在位置 根据索引获取元素 根据索引删除元素 修改指定位置的元素 同时使用两个算法对数组进行操作: 有序添加元素 二分查找法 1.创建数组类 MyArray.java 数据如何存储呢?在类中添加一个数组类型的私有属性用来保存数据,同时添加一个变量存储有效数据的长度(也就是元素的个数) 创建数组的时候需要指定数组的长度,所以要添加两个构造方法: 1.无参构造方法设置数组默认长度 2.有参构造方法指定数组长度 public class MyArray { //存储元素 private long[] arr; //表示有效数据的长度 private int elements; //无参构造默认50个长度 public MyArray() { arr=new long[50]; } public MyArray(int maxsize) { arr=new long[maxsize]; } } 2....
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Windows10,CentOS7,CentOS8安装Nodejs环境
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Linux系统CentOS6、CentOS7手动修改IP地址
- Docker安装Oracle12C,快速搭建Oracle学习环境