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条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- Docker容器配置,解决镜像无法拉取问题
- Windows10,CentOS7,CentOS8安装Nodejs环境
- MySQL8.0.19开启GTID主从同步CentOS8
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Linux系统CentOS6、CentOS7手动修改IP地址
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2整合Redis,开启缓存,提高访问速度
- 设置Eclipse缩进为4个空格,增强代码规范