记录一个入参序列化问题

71 阅读1分钟

背景

在项目开发中,大家可能遇到过,调用接口,传参的时候,预期是将数组完整的传过去,最后在浏览器控制台却看到,接口入参被序列化,类似

{
functionCodes:[code1,code2]
}

接口定义也是一个string数组,方式为POST:

image.png 接口调用时:

image.png

到这里我们查阅资料,可以了解到是一个参数被序列化的问题,我们可以和后端沟通好,我们将参数转换成字符串:

{
functionCodes: JSON.stringify([code1,code2])
//或者我们将参数转换为以逗号分隔的字符串
functionCodes: [code1,code2].join(',')
}

但是我发现了一个有趣的现象 在另一个POST接口调用中,我们仍以 functionCodes:[code1,code2]的形式传参,接口调用时却并没有被序列化 我们先看看接口定义: 接口为POST image.png 接口调用成功

image.png 我们可以看到,以数组形式传参,这里并没有被序列化

同样是POST接口,以数组形式传参,一个会被序列化,另一个却不会,造成以上两者区别的原因是啥呢?