Springboot引用jackson-dataformat-xml后如何返回json

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Springboot引用jackson-dataformat-xml后如何返回json相关的知识,希望对你有一定的参考价值。

参考技术A 引用jackson-dataformat-xml后,原本返回json的接口全部返回了xml,除了前端调用时因有加特定的请求头而可以返回json外,尤其是后端服务间调用时全部返回了xml,导致json反序列化失败。

让xml解析顺序重新排序

注意这里千万不能再加个@EnableWebMvc,会导致之前注入的Converter全部失效,参照 这里
然而这并不一直能解决问题,实际中发现有些接口能调整回来,有些不能,原因大概是用谷歌浏览器访问时,它的Accept如果没有指定,默认xml会排在前面申请;还有服务间的通信,由于之前没有指定还是返回了xml。服务间通信是直接使用RestTemplate的,直接new,为了方便管理,改为注入一个写了Accept头的对象。
实现一个ClientHttpRequestInterceptor,便于加入Header配置

注入RestTemplate

顺便提一句,@ResqustMapping(produces="application/json") 也是可以的,然而太麻烦,反正前端在请求时会指定content-type,这个似乎会暗示返回结果,因此也能稳定返回json格式

我这边发现配置Media解析顺序用处不大,尤其是用谷歌浏览器时,它的Accept拿到就是xml排前面的,因此下面的设置没什么用

springboot整合thymeleaf——引用静态资源

原html src="/css/index.css"

thymeleaf中,th:src="@{/css/index.css}"

 

 

以上是关于Springboot引用jackson-dataformat-xml后如何返回json的主要内容,如果未能解决你的问题,请参考以下文章

springboot项目如何打包给其他项目引用

springboot整合thymeleaf——引用静态资源

解决 springBoot 项目maven打包 项目引用不了的问题

使用 SpringBoot 1.3.2.RELEASE 时,通过 ActiveMQ 发送文件引用的最佳方式是啥?

springboot~引用地址jar包的方法

springboot 配置