2013-03-01 48 views
-2

我想将对象串化为查询字符串。如何将对象转换为查询字符串?

例如,

{ hello: '123', goodbye: "789" } 

能给我...

hello=123&goodbye=789 
+0

它应该是循环和连接可行的。不过,我认为我没有遇到过内置的JS函数。 – nhahtdh 2013-03-01 18:30:18

+0

[Serialize对象在JavaScript/jQuery中查询字符串]的可能重复(http://stackoverflow.com/questions/3308846/serialize-json-to-query-string-in-javascript-jquery) – 2014-06-22 04:07:24

回答

5

有一位优秀的URL库,URL.js这工作你描述的查询漂亮多了。

对于示例,代码将是:

URI().addSearch({ hello: '123', goodbye: "789" }).toString() 

这就产生了预先计划?的结果,但它有非常方便的构建&操纵真实的URL。

+0

+1用于回答实际问题。 – 2013-03-01 18:33:50

+0

+1好图书馆 – karaxuna 2013-03-01 18:33:56

4

如果,如果你在项目中使用jQuery的情况下,你不需要为这一个lib:

$.param({ hello: '123', goodbye: "789" }) 

但因为没有jQuery的标签,看看Barney答案,这可能是你需要。

0

这里是一个简单的情况下,一个代码示例:

var params={ hello: '123', goodbye: "789" }, 
    pairs=[]; 
for (var key in params) { 
    if (params.hasOwnProperty(key)) { 
     pairs.push(key+"="+encodeURIComponent(params[key])); 
    } 
}; 
var qs=pairs.join("&"); 

对于您可能希望使用图书馆像URLjs在其他答复建议更复杂的情况。