原因
导致这个结果的根因是SpringBoot项目中集成了Eureka,又需要jackson-dataformat-xml这个依赖 ,而引入了这个依赖后可以将实体转换为xml也可以转换为json,这个根据发起请求的request头中Accept来决定,
通过在浏览器按F12可以看到request请求头信息如下,可以看到application/xml在最後匹配json的*/ *前面,优先順序高过json,所以返回了XML
不懂HTTP请求头信息的,可以看下这个
解决办法
可以在类前或者方法前请求的Mapping上加上
produces = { “application/json;charset=UTF-8” }
或者
produces = MediaType.APPLICATION_JSON_UTF8_VALUE,例如:
@RequestMapping(value = "category",produces = { "application/json;charset=UTF-8"})
//或者
@RequestMapping(value = "category",produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
以下是json和xml 定义的方式:
json:
@GetMapping(value = "category", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
xml:
@GetMapping(value = "category", produces = MediaType.APPLICATION_XML_VALUE)