qs-一个序列化和反序列化的JavaScript库

起因

一个业务场景中,最终得到一串字符"status[0]=value1&status[1]=value2"
通过解析,理应得到一个数组,却得到一个对象
于是展开问题排查
最终发现是qs.parse 这个地方出了问题

排查结果

qs解析这种带下标的字符串时,默认会转换成数组

const str = qs.parse('a[0]=b&a[1]=&a[2]=c');
console.log(str)
//  打印结果 a: ['b', '', 'c']

当这个下标太大的时候,发现出现的结果不是一个数组导致代码报错;
于是去看了下文档
qs-一个序列化和反序列化的JavaScript库_第1张图片
当长度超过20时,这个默认数组就变成对象了;
要解决这个问题只需要配置一下option

const str = qs.parse('a[0]=b&a[1]=&a[22]=c',{ arrayLimit: 30 });

你可能感兴趣的:(javascript,开发语言)