const originUri = 'https://www.youzan.com?name=coder&age=20&callback=https%3A%2F%2Fyouzan.com%3Fname%3Dtest&list[]=a&list[]=b&json=%7B%22str%22%3A%22abc%22,%22num%22%3A123%7D'
function parseQuery(inputUri) {
const hash = {}
hash['list'] = []
const uriStr = decodeURIComponent(inputUri)
const url = new URL(uriStr)
for(let u of url.searchParams) {
try {
u[1] = JSON.parse(u[1])
} catch(e) {}
if(u[0] === 'list[]') {
hash['list'].push(u[1])
} else {
hash[u[0]] = u[1]
}
}
return hash
}
parseQuery(originUri)