个人网站名称请,湖南建设监理工程网站,做赌钱网站,国外网站视觉设计趋势问题描述
chrome游览器又一款JSON插件叫JSON Formatter#xff0c;游览器GET请求调用接口时#xff0c;如果返回的数据是json格式#xff0c;则会自动格式化展示#xff0c;类似这样#xff1a; 但是今天突然发现怎么也格式化不了#xff0c;打开一个json文件倒是可以格…问题描述
chrome游览器又一款JSON插件叫JSON Formatter游览器GET请求调用接口时如果返回的数据是json格式则会自动格式化展示类似这样 但是今天突然发现怎么也格式化不了打开一个json文件倒是可以格式化但是请求接口返回json就是无法格式化
问题原因
反复卸载重装插件都没有解决所以想到会不是接口返回的数据有问题排查发现接口返回的Response Headers中content-type是 text/html这就不对劲了按理说springboot项目Controller只要用了RestController注解返回实体对象的话content-type应该默认就是application/json才对这里居然不对
解决方案
既然返回的Content-Type不对这里最简单的方案
GetMapping(value /pageQuery/{apiPostfix}, produces application/json;charsetUTF-8)在GetMapping注解里加上produces属性配置为指定的实测确实可以解决
但是springboot项目Controller只要用了RestController注解返回实体对象的话content-type应该默认就是application/json才对这里一定是哪里出了问题才会有变化经过排查发现在公司的依赖库里找到这么个类 其中46行添加了一个FastJson的消息转换器而且没有设置setSupportedMediaType属性这里默认指是*/*导致了后续返回数据时出了问题。
这里要注意在添加FastJsonHttpMessageConverter时要设置SupportedMediaTypes
converter.setSupportedMediaTypes(Collections.singletonList(MediaType.APPLICATION_JSON_UTF8));或者干脆不要用FastJsonHttpMessageConverter了一般MappingJackson2HttpMessageConverter已经完全够用了引入这么个消息转换器不知道哪天又出什么BUG