遇到一个傻狗bug controller层加@RestController注解无法把实体类转化为json串

发一些我遇到的傻狗bug

问题如上代码为

@RestController
public class HelloController {
    @RequestMapping(value = "/hello")
//    @ResponseBody
    public Result getHello() {
        Hello hello = new Hello(1, "hello");
        return Result.success(hello);
    }
}

我加了注解@RestController 还加了一个@ResponseBody注解防止它不生效 但访问时显示错误

{

    

    "status": 406,

    "error": "Not Acceptable",

    "path": "/hello"

}

问了智障AI它给我改成了这样

@RestController
public class HelloController1 {
    private static final Logger logger = LoggerFactory.getLogger(HelloController1.class);
    @RequestMapping(value = "/hello", produces = "application/json")
    public Result getHello() {
        try {
            System.out.println("hello");
            Hello hello = new Hello(1, "hello");
            logger.info("=============:{}", Result.success(hello));
            return Result.success(hello);
        } catch (Exception e) {
            logger.error("Error occurred while processing /hello request", e);
            return Result.error("Internal Server Error: " + e.getMessage());
        }
    }

然后访问显示

{

   

    "status": 500,

    "error": "Internal Server Error",

    "path": "/hello"

}

你再问ai 它就一直给你bb这是你数据格式转化错误之类的一致循环 然后自己检查先是在实体类上加了注解@JsonSerialize/@JsonDeserialize 这次没报错 但返回的数据是一个空[]号

自己手动转化为json访问后正确接收字符串

百思不得其解之时发先类上有一个注解很显眼就是@Data 然后把它去了自己手动生成getter和setter方法正常访问,也就是lombok依赖出了问题,问ai说是getter和setter方法出了问题

最后得出注解@Data没有生效自动生成getter和setter方法这也是为什么加注解@JsonSerialize每有报错给了一个空的中括号。

然后做了一个对比建项目是没有勾选Lombok的启始项也就是这里

创建后自己导入Lombok依赖,这次没有报错。

{

    "code": 1,

    "msg": "success",

    "data": {

        "id": 1,

        "name": "hello"

    }

}

我看了两个项目的Lombok依赖版本都是一样的,也不知道是idea发癫,还是什么问题。然后我用的springboot版本是

用2.xx的版本没有以上bug其他的没试过

所以解决方法就是创建项目是不勾选Lombok起始项之后自己手动转换,或者自己手动用Gson之类的依赖自己手动转。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值