如何将javascript字典转换为编码的url字符串?

时间:2011-08-12 19:01:27

标签: javascript

我想得到像

这样的东西
?key=value?key=value

出自

的js字典
{
    key:value,
    key:value
}

3 个答案:

答案 0 :(得分:19)

如果使用jQuery,您可以使用jQuery.param

var params = { width:1680, height:1050 };
var str = jQuery.param( params );
// str is now 'width=1680&height=1050'

否则,这是一个执行此操作的函数:

function serialize(obj) {
  var str = [];
  for(var p in obj)
     str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
  return str.join("&");
}
alert(serialize({test: 12, foo: "bar"}));

答案 1 :(得分:4)

ECMAScript 2016中的相同内容:

let params = { width:1680, height:1050 };
Object.entries(params).map(([k, v]) => `${encodeURIComponent(k)}=${encodeURIComponent(v)}`).join('&');
// => "width=1680&height=1050"

或者,作为单线:

unique

答案 2 :(得分:2)

现在有一种更简单的方法:

URLSearchParams的API是here

var url = new URL('https://example.com/');
url.search = new URLSearchParams({blah: 'lalala', rawr: 'arwrar'}); 
console.log(url.toString()); // https://example.com/?blah=lalala&rawr=arwrar