今天开发任务,需要给第三方提供推送接口,一般第三方推送设备数据。
在第三方提供的请求body种,有如下字段:
{
"alarm": 0,
"cardType": 1510,
"cardno": "17568",
"companyId": "60073385595001",
"companyName": "XXX劳务有限公司",
"department": "默认部门",
"deptId": "70016416443901",
"deviceName": "高精度定位设备111",
"deviceSn": "1111",
"elevation": "0",
"gender": "男",
"heartRate": 0,
"idNumber": "",
"inlX": 941,
"lastInTime": "",
"latitude": "30.05",
"longitude": "102.54",
"masterX": 0.10000000149011612,
"nX": 1141.0000244155526,
"nY": 50.400001525878906,
"oximeter": 255,
"pX": 5631.35870167634,
"pY": 6984.063810215013,
"personId": "20060294049508",
"personName": "李刚",
"phone": "",
"pileNo": "ZK1+141.00",
"plateNumber": "",
"projectId": "0905FFFF5D7F",
"regionCode": "70370865604602",
"regionId": "30370865604602",
"regionName": "左洞区域",
"ringNum": "633.9",
"stayTime": 0,
"teamId": "80010791977303",
"teamName": "监理单位",
"updateTime": "2024-03-04 21:37:19",
"vehicleType": "",
"volume": 69,
"workTypeName": ""
}
其中,我后端使用不管是使用string类型、double类型还是bigdecimal类型都无法接收"nX" "nY"
"pX" "pY"这几个字段,让我怀疑人生,debug调试发现接收不到这几个数据。
后来,灵光一现,使用了json注解,如下:
@JsonProperty("nX")
private String nX;
这样接收参数,就可以接收到了。
后续思考了下,问题应该出在@lombok,或者spring jackson还是其他json转换上,具体应该是get或set方法无法将body的对应数据填充导java对象中。
后续想深入排查下,奈何任务太多了,我就是纯牛马。
再见,牛马人,又是美好的一天呢。