/** * 文件名:@WebConfiguration.java <br/> * @author tomas <br/>

import com.alibaba.fastjson.support.config.FastJsonConfig;import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.boot.actuate.health.ApplicationHealthIndicator;import org.springframework.boot.actuate.health.HealthIndicator;import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;import org.springframework.context.EnvironmentAware;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.core.env.Environment;import org.springframework.http.MediaType;import org.springframework.http.converter.HttpMessageConverter;import org.springframework.web.servlet.config.annotation.EnableWebMvc;import org.springframework.web.servlet.config.annotation.InterceptorRegistry;import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

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

import static com.alibaba.fastjson.serializer.SerializerFeature.*;

/** * 类名:WebConfiguration  <br /> * * 功能:Web相关配置 * * @author tomas <br /> * 创建时间:2016年7月27日 下午3:57:19  <br /> * @version 2016年7月27日*/@Configuration@EnableWebMvcpublic class FrontConfiguration extends WebMvcConfigurerAdapter implements EnvironmentAware {// 日志记录器 private static final Logger logger = LoggerFactory.getLogger(FrontConfiguration.class);

 // 当前的环境对象 protected Environment environment;

@Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {super.configureMessageConverters(converters); //1.需要先定义一个 convert 转换消息的对象; FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();

 //2、添加fastJson 的配置信息,比如:是否要格式化返回的json数据; FastJsonConfig fastJsonConfig = new FastJsonConfig(); // 不忽略对象属性中的null值 fastJsonConfig.setSerializerFeatures(PrettyFormat, WriteNullListAsEmpty, WriteNullStringAsEmpty); //3、在convert中添加配置信息. fastConverter.setFastJsonConfig(fastJsonConfig); //4、将convert添加到converters当中. converters.add(fastConverter); }

public void addResourceHandlers(ResourceHandlerRegistry registry) {      registry.addResourceHandler("swagger-ui.html")            .addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("favicon.ico")            .addResourceLocations("classpath:/static/favicon.ico"); registry.addResourceHandler("/webjars/**")            .addResourceLocations("classpath:/META-INF/resources/webjars/"); }/**    * Set the {@code Environment} that this object runs in.    *    * @param environment */ @Override public void setEnvironment(Environment environment) {this.environment = environment; }}
@Overridepublic void configureMessageConverters(List<HttpMessageConverter<?>> converters) {super.configureMessageConverters(converters); //1.需要先定义一个 convert 转换消息的对象; FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter(); List<MediaType> supportedMediaTypes = new ArrayList<>(); supportedMediaTypes.add(MediaType.APPLICATION_JSON); supportedMediaTypes.add(MediaType.APPLICATION_JSON_UTF8); supportedMediaTypes.add(MediaType.APPLICATION_ATOM_XML); supportedMediaTypes.add(MediaType.APPLICATION_FORM_URLENCODED); supportedMediaTypes.add(MediaType.APPLICATION_OCTET_STREAM); supportedMediaTypes.add(MediaType.APPLICATION_PDF); supportedMediaTypes.add(MediaType.APPLICATION_RSS_XML); supportedMediaTypes.add(MediaType.APPLICATION_XHTML_XML); supportedMediaTypes.add(MediaType.APPLICATION_XML); supportedMediaTypes.add(MediaType.IMAGE_GIF); supportedMediaTypes.add(MediaType.IMAGE_JPEG); supportedMediaTypes.add(MediaType.IMAGE_PNG); supportedMediaTypes.add(MediaType.TEXT_EVENT_STREAM); supportedMediaTypes.add(MediaType.TEXT_HTML); supportedMediaTypes.add(MediaType.TEXT_MARKDOWN); supportedMediaTypes.add(MediaType.TEXT_PLAIN); supportedMediaTypes.add(MediaType.TEXT_XML); fastConverter.setSupportedMediaTypes(supportedMediaTypes); //2、添加fastJson 的配置信息,比如:是否要格式化返回的json数据; FastJsonConfig fastJsonConfig = new FastJsonConfig(); // 不忽略对象属性中的null值 fastJsonConfig.setSerializerFeatures(PrettyFormat, WriteNullListAsEmpty, WriteNullStringAsEmpty); //3、在convert中添加配置信息. fastConverter.setFastJsonConfig(fastJsonConfig); //4、将convert添加到converters当中. converters.add(fastConverter);}

转载于:https://www.cnblogs.com/wangdaijun/p/7779479.html

springboot 利用configureMessageConverters add FastJsonHttpMessageConverter 实现返回JSON值 null to ...相关推荐

  1. spring字符串判空_spring框架返回json数据null转空字符串

    spring项目中,前端获取服务器返回的json时,里面有null值,如果没做校验,就会导致js报错,但是不推荐每个返回的地方手动处理,而是应该在框架中统一配置. 前面关于json日期格式化的文章中, ...

  2. SpringBoot中怎样对外开放一个接口返回Json数据

    场景 在SpringBoot中开放一个接口,使C#程序中能访问接口并接受返回的数据. 实现 封装一个Json类 import lombok.Data;import java.io.Serializab ...

  3. 海康API返回Json值获取

    1.登录海康的管理平台,测试API,获取返回的Json字符串 2.将json字符串贴到如下网站中: http://www.bejson.com/convert/json2csharp/ ,将生成的类拷 ...

  4. 从零开始学springboot笔记(二)-Spring boot返回json数据(中文无乱码)

    先创建json实体类,如下: public class Demo {private int age; private String address; private String name; priv ...

  5. SpringBoot对于标注@ResponseBody注解返回JSON数据的处理

    前面我们已经知道,解析request要找到参数解析器和返回值处理器,而对于@ResponseBody注解的方法,其实就是其对应的返回值处理器再起作用 返回值处理器,我们知道有默认15种 : 其中处理器 ...

  6. json日期格式化 java_java_Java Web程序中利用Spring框架返回JSON格式的日期,返回Json时格式化日期Date 第一 - phpStudy...

    Java Web程序中利用Spring框架返回JSON格式的日期 返回Json时格式化日期Date第一步:创建CustomObjectMapper类 /** * 解决SpringMVC使用@Respo ...

  7. springboot如何在接收和返回json时下划线转驼峰以及驼峰转下划线

    因为前端一般会返回带有下划线的数据,而java的命名规范一般是以驼峰的形式,所以这就造成了用javabean来接收或者返回json格式的数据时会有命名方式的冲突,所以我们常常需要对格式进行转换或者是兼 ...

  8. SpringBoot 直接返回 Json格式对象(报错:返回对象为空{})

    文章目录 1 需求描述 2 代码展示 3 原因分析 4 解决方案 5 效果展示 6 结束语 1 需求描述 我们现在要干一个什么事情呢,我们要在浏览器输入一个请求地址,然后我们的后端就给我返回一个Use ...

  9. springboot 返回json字符串格式化问题

    在idea中yml文件中添加以下注解就可以格式化json字符串效果 spring: jackson: serialization: indent-output: true 原返回json格式为: {& ...

最新文章

  1. Android之EventBus框架源码解析上(单例模式)
  2. Juniper EX3400
  3. 实现二叉树的先序遍历、中序遍历、后序遍历
  4. leetcode 201. Bitwise AND of Numbers Range(位运算,dp)
  5. Codeforces Round #737 (Div. 2) D. Ezzat and Grid 线段树动态开点
  6. jax-rs配置_具有MicroProfile配置的可配置JAX-RS ExceptionMapper
  7. AD域控exchange邮箱(四)——获取AD域控中计算机有哪些账号登录过
  8. Pytorch nn.functional.unfold()的简单理解与用法
  9. sql执行遇到汉字会停止执行吗_(数据)产品经理应该学会的SQL优化和进阶技巧...
  10. cmd跑绿色代码_cmd装逼代码-cmd命令,装逼
  11. NK细胞培养方法与优化解决方案
  12. 一套键鼠操控多台电脑Mouse without Borders
  13. 如何用友远程到服务器,怎么安装用友T3远程通
  14. 端口映射软件有什么用怎么用
  15. 永中office linux卸载,安装永中Office for linux
  16. 二进制转化成ascll_微机原理实验-二进制到ASCII码转换
  17. 小学生Python编程 ----- 打鸭子
  18. MySQL百万级压测数据表
  19. 安装 Windows Server 2003 IIS6.0 详解(图)
  20. 网络爬虫是什么意思,可以实现什么效果

热门文章

  1. python调用zabbix api接口实时展示数据
  2. nfs自动挂载报错及解决方法
  3. Z 字形变换 C++实现 java实现 leetcode系列(六)
  4. js中判断两个数字的大小
  5. [转]MFC下关于“建立空文档失败”问题的分析
  6. 2018.2.11-12 写作业
  7. Spring学习3—控制反转(IOC)Spring依赖注入(DI)和控制反转(IOC)
  8. Android应用源码安卓短信拦截木马项目源码
  9. C++字符串函数与C字符串函数比较
  10. 阿里P7面试官告诉你:3-5年以上的Android开发如何深入进阶?Android中高级开发必须掌握哪些?