一步到位js对象和querystring查询字符串互转(get/url参数)
需要注意的是微信小程序环境不支持URLSearchParams类和URL类。。。
当然,这个问题有很多解决方式,这里说一种最简洁的方式:
对象转querystring查询字符串(get/url参数)
我看网上的方法都比较繁琐,其实可以直接使用js的URLSearchParams对象一步到位:
1 (new URLSearchParams(obj)).toString(); 2 3 // test 4 console.log((new URLSearchParams({page: 'seekhub_collector', nav: 'data', size: '10', p: '1'}).toString()); 5 // 'page=seekhub_collector&nav=data&size=10&p=1'
querystring查询字符串转对象
如果拿到的是完整的网址比如location.href
var url = new URL('https://www.domain.cn/qrcode/test?to=video');
url.searchParams.get('to');
// video
如果只是一段类似?to=video的querystring这个就需要自己实现了
1 function getQueryObject(url){ 2 var query = url.split('?')[1]; 3 var res = {}; 4 5 querys = query.split('&'); 6 querys.forEach(query => { 7 var item = query.split('='); 8 res[item[0]] = item[1]; // 当然如果有中文/Unicode字符可以在这里用URIencode方法转码一下 9 }); 10 11 return res; 12 }