springboot2.4.3在返回json字符串时可以直接使用@restcontroller注解。
@RestController
public class MyController {
@RequestMapping("/test")
public Test test(){
return new Test(12, "asdf");
}
}
但是却遇到type=Not Acceptable, status=406这个错误,IDEA控制台报警告:org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation。
意思是不可接受的http数据类型,这坑爹的错误类型导致我以为是jackson没有自动配置好(springboot的web starter依赖中自带json转换的starter,有jackson、gson、jsonb三种方式,默认使用jackson),于是开始疯狂查为什么没有自动配置好json转换的配置。
找了好久最后发现问题所在:不是因为没有自动配置好,是因为实体类没有getter方法。在实体类上加上相应的getter方法,就可以生成json字符串,有几个getter方法就会生成对应属性的json。
那你为什么要报这个406这个错误类型呢?简直误导,服气。。