bug收集:专门解决与收集bug的网站
今天和后端对接接口时,发现了一个有趣的bug, 第一次遇到,分享出来大家也看看
问题描述:
后端数据 :双引号包单引号
"['白富美' ,'专业过硬' ,'技术好' ]"
直接使用JSON.parse转换失败
改成:单引号包双引号
'["白富美","专业过硬","技术好"]'
使用JSON.parse转换成功
PS: 问了下后端为什么要用双引号包单引号,原因是:java中字符串必须用双引号,单引号只有char类型使用。所以使用了上面的方法。
当然,也可以使用双引号中包括双引号,只是需要写转义符\ . 相对来说后端处理麻烦点,所以用了单引号
解决方案:
将字符串的的引号进行替换,再转换即可 .
封装的方法如下:
const toArray = (str: string) => {
str = str.replace(/'/g, '"'); // 移除单引号
str = str.replace(/^\[/, ''); // 去掉开头的 '['
str = str.replace(/\]$/, ''); // 去掉结尾的 ']'
return JSON.parse('[' + str + ']'); // 添加必要的 '[' 和 ']' 并解析
}
苟有恒 , 何必三更眠五更起
关注我,一起学习吧