【bug】debug内数据正常,接口返回result为空

Fastjson 序列化问题导致接口返回null
博客讲述了作者在开发接口时遇到的问题,即接口文档标明字段非空,但实际返回结果为空。问题源于使用Fastjson进行序列化时出现的不预期情况。通过在mapper中对时间查询使用to_char()并映射为String类型解决了问题。

项目场景:

最近写的一个给第三方用的接口,自测完就提交更新了。
对面说 “你接口文档写两个字段是非空昂,为啥没反数据回来”
我记得为了快直接用的map,塞进去的数据,不可能为空鸭。


问题描述

controller 接口代码大致如下

// 查数据
List<Map<String, String>> cowList = cowInfoService.getExternalCowInfoList(baseInterQO);
// 结果集
Map<String,Object> resultMap = new HashMap<>();
resultMap.put("farmId",baseInterQO.getFarmId());
resultMap.put("cowsList",cowList);
// 返回
return ResultVO.successResult(resultMap);

debug到返回的时候也是有数据的
在这里插入图片描述

但是返回结果集就是null
在这里插入图片描述


原因分析:

盲猜可能是因为fastjson序列化的原因


解决方案:

在这里插入图片描述

mapper中时间的查询用to_char()修饰,映射的Java数据类型为String,可以正常序列化。
被自己蠢哭了😂

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值