入参格式参考:
const url = "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"
出参格式参考:
{
name: "coder",
age: "20",
callback: "https://youzan.com?name=test",
list: ["a", "b"],
json: {
str: 'abc',
num: 123
}
}
参考
function parseQuery(url) {
const obj = {}
const searchParams = new URLSearchParams(new URL(url).search)
for (let [key, value] of searchParams.entries()) {
if (value.startsWith('{')) {
value = JSON.parse(value)
}
if(!obj[key]) {
obj[key] = value
} else {
if (!Array.isArray(obj[key])) {
obj[key] = [obj[key]]
}
obj[key].push(value)
}
}
return obj
}