日前在使用SpringCloud的時候,須要用到服務間的調用,採用Feign進行調用,可是默認返回了xml格式的數據,比較坑爹,不過在網上查了相關資料以後大概瞭解怎麼回事:html
主要是引入了jackson-dataformat-xml這個依賴,它是提供了jackson將實體類轉化爲xml相關的做用。而自己jackson是能夠將實體類轉化爲json的,因此這樣Jackson是能夠將實體類轉化爲兩種類型的數據,而具體要轉化爲哪種數據,是要看http請求裏面的accept頭信息的,個人瀏覽器chrome的accept是 Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8 ,而後服務器會根據accept來決定是返回xml仍是json,因爲瀏覽器accept只有最後的*/是匹配 application/json的,而application/xml在/*前面,優先級比json高,因此用瀏覽器直接調用是會優先返回xml格式的。web
解決方案:chrome
<dependency> <groupId>com.netflix.feign</groupId> <artifactId>feign-jackson</artifactId> <version>8.18.0</version> </dependency> <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.39</version> </dependency>
引入feign-jackson包便可json