1. 程式人生 > >SpringBoot引用Eureka導致返回結果由json變為xml解決方案

SpringBoot引用Eureka導致返回結果由json變為xml解決方案

  在學習SpringCloud的時候,專案集成了Eureka時,無論使用@RestController還是@Controller + @ResponseBody返回的資料都是xml形式的資料,不是我們想要的json格式的資料,如下圖:

原因

在我的SpringBoot專案中集成了EurekaServer,又需要jackson-dataformat-xml這個依賴

它可以將實體轉換為xml也可以轉換為json,根據發起請求的request頭中Accept來決定,例如下面這個:

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8

可以看到application/xml在最後匹配json的*/ *前面,優先順序高過json,所以返回了XML

解決方案

在請求的Mapping上加上produces = { “application/json;charset=UTF-8” },例如:

@GetMapping(value = "/user-instance", produces = { "application/json;charset=UTF-8" })

以下是json和xml 定義的方式:

@GetMapping(value = "/user-instance", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@GetMapping(value = "/user-instance", produces = MediaType.APPLICATION_XML_VALUE)

除了在方法上面加入之外,還可以直接在類上面加入