如何通过原生函数将URL编码格式字符串转为JS对象?
如何将URL查询参数字符串转为JS对象?
你收到的这个格式是URL查询参数格式(对应application/x-www-form-urlencoded表单数据格式),和URL地址中?后的查询串结构完全一致,JS有原生API可以直接解析,不用自己写分割或正则逻辑。
原生解决方案
使用URLSearchParams(ES6引入)结合Object.fromEntries()(ES2019引入)就能快速完成转换:
// 你的返回字符串 const responseStr = 'Result=A&Status=Approved&Error=&ErrorCode=00000'; // 解析为URL参数对象 const params = new URLSearchParams(responseStr); // 转换为普通JS对象 const resultObj = Object.fromEntries(params); console.log(resultObj); // 输出:{ Result: 'A', Status: 'Approved', Error: '', ErrorCode: '00000' }
说明
URLSearchParams会自动处理键值对分割、空值(比如Error=这种无值的键)、甚至URL编码的字符,比手动写正则/分割更可靠Object.fromEntries()负责把URLSearchParams这个可迭代对象转换成标准JS对象,直接就能使用
如果需要兼容IE这类旧浏览器,才需要手动实现分割逻辑,现代浏览器(Chrome、Firefox、Edge等)都支持这两个原生API。
内容的提问来源于stack exchange,提问作者Arun
相关产品推荐
相关产品推荐

