错误描述
上个星期写了Dubbo底层接口的对外支持,今天自测一下,自测的时候出现了一个错误,就是这个
JSON parse error: Cannot deserialize instance of `java.util.ArrayList` out of VALUE_STRING token; nested exception is com.fasterxml.jackson.databind.exc.MismatchedInputException: Cannot deserialize instance of `java.util.ArrayList` out of VALUE_STRING token
at [Source: (PushbackInputStream); line: 5, column: 14] (through reference chain: com.byai.saas.bywechatbot.api.common.model.request.AddAutoAddTaskRequestV2["hello"])
大概意思就是Java对象是ArrayList,但是JSON我写的格式无法转换,应该就是我的Json格式写错了
我的JSON一开始是这样写的
{
"groupId": 88,
"taskName": "墨兰测试-自动加粉26@2021-07-20 11:50",
"companyId": 125540,
"helloList": "[我市新增的测试组]",
"addAutoWelcomeRequests":
{
"type": 1,
"content": "hahha",
"fileUrl": "http:/sssss",
"fileName": "",
"linkTitle": "",
"linkPicUrl": "",
"linkDesc": "",
"linkUrl": "",
"miniIconUrl": "",
"miniProgramTitle": "",
"miniProgramPicMediaId": "",
"miniProgramPicUrl": "",
"miniProgramAppId": "",
"miniProgramPage": "",
"sort": 1
],
"appName" : "SCRM",
"creatorId" : 1212129981,
"creatorName":"墨兰测试"
}
错误地区
helloList还有addAutoWelcomeRequests这个地方,因为Java对象他们是一个数组,我这样写是错误的,正确写法应该是
{
"groupId": 12321321321,
"taskName": "测试-26@2021-07-20 11:50",
"companyId": 12321312,
"helloList": ["xxxxxxxx","我市新增的测试组"],
"addAutoWelcomeRequests": [
{
"type": 1,
"content": "hahha",
"fileUrl": "http:/sssss",
…………
}
],
"appName" : "xxx",
"creatorId" : xxxx,
"creatorName":"xxxxx"
}
这样写我的后台Java参数才能收到,不然我的JSON解析是有问题的
成长
JSON格式上,平常没注意,都是贴别人的,现在让自己构造,出了很大问题,需要在熟悉熟悉JSON格式