问题描述
今天在调试接口的时候,遇到一个问题。有一个post请求的json body参数,
然后vo里面只有两个属性,id和一个集合。
然后使用apifox调试接口的时候,发现json解析异常:
操作失败,JSON parse error: Cannot deserialize value of type `java.util.ArrayList` from Object value (token `JsonToken.START_OBJECT`);
通过提示信息,可以发现是因为json结构不对导致解析不了。
错误示范
我原来是这样传的,会报错:
{"id": "403","x": {"serialVersionUID": 1,"id": 1,"fileCode": "demoData","fileName": "demoData","fileNum": 1,"fileSize": "demoData","fileCategoryDic": 1,"fileTypeDic": 1,"allowType": "demoData","izRequired": 1,"fileDesc": "demoData","templateUrl": "demoData","handleUrl": "demoData","delFlag": 1,"createBy": "demoData","createTime": "2023-05-09 09:45:36","updateBy": "demoData","updateTime": "2023-05-09 09:45:36","remark": "demoData","tenantId": "demoData","flag": true,"quyang": "demoData"}}
正确示范
应该给list加一层数组,这样就能正常解析
{"id": "403","sysConfigFiles": [{"serialVersionUID": 1,"id": 1,"fileCode": "demoData","fileName": "demoData","fileNum": 1,"fileSize": "demoData","fileCategoryDic": 1,"fileTypeDic": 1,"allowType": "demoData","izRequired": 1,"fileDesc": "demoData","templateUrl": "demoData","handleUrl": "demoData","delFlag": 1,"createBy": "demoData","createTime": "2023-05-09 09:45:36","updateBy": "demoData","updateTime": "2023-05-09 09:45:36","remark": "demoData","tenantId": "demoData","flag": true,"quyang": "demoData"}]}
扩展,多个集合元素
如果有多个集合,那么直接使用,分割即可,例如:
{"id": "403","sysConfigFiles": [{"serialVersionUID": 1,"id": 1,"fileCode": "demoData","fileName": "demoData","fileNum": 1,"fileSize": "demoData","fileCategoryDic": 1,"fileTypeDic": 1,"allowType": "demoData","izRequired": 1,"fileDesc": "demoData","templateUrl": "demoData","handleUrl": "demoData","delFlag": 1,"createBy": "demoData","createTime": "2023-05-09 09:45:36","updateBy": "demoData","updateTime": "2023-05-09 09:45:36","remark": "demoData","tenantId": "demoData","flag": true,"quyang": "demoData"},{"serialVersionUID": 1,"id": 1,"fileCode": "demoData","fileName": "demoData","fileNum": 1,"fileSize": "demoData","fileCategoryDic": 1,"fileTypeDic": 1,"allowType": "demoData","izRequired": 1,"fileDesc": "demoData","templateUrl": "demoData","handleUrl": "demoData","delFlag": 1,"createBy": "demoData","createTime": "2023-05-09 09:45:36","updateBy": "demoData","updateTime": "2023-05-09 09:45:36","remark": "demoData","tenantId": "demoData","flag": true,"quyang": "demoData"}]}