首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >查询- Javascript对象的字符串编码

查询- Javascript对象的字符串编码
EN

Stack Overflow用户
提问于 2009-11-11 20:07:38
回答 39查看 483.4K关注 0票数 595

您知道一种快速而简单的方法将Javascript对象编码成我可以通过GET请求传递的string吗?

没有jQuery,没有其他框架--只是简单的Javascript :)

EN

回答 39

Stack Overflow用户

回答已采纳

发布于 2009-11-11 20:31:26

是像这样吗?

代码语言:javascript
复制
serialize = function(obj) {
  var str = [];
  for (var p in obj)
    if (obj.hasOwnProperty(p)) {
      str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
    }
  return str.join("&");
}

console.log(serialize({
  foo: "hi there",
  bar: "100%"
}));
// foo=hi%20there&bar=100%25

Edit:它还可以转换递归对象(使用php "array“表示法作为查询字符串)

代码语言:javascript
复制
serialize = function(obj, prefix) {
  var str = [],
    p;
  for (p in obj) {
    if (obj.hasOwnProperty(p)) {
      var k = prefix ? prefix + "[" + p + "]" : p,
        v = obj[p];
      str.push((v !== null && typeof v === "object") ?
        serialize(v, k) :
        encodeURIComponent(k) + "=" + encodeURIComponent(v));
    }
  }
  return str.join("&");
}

console.log(serialize({
  foo: "hi there",
  bar: {
    blah: 123,
    quux: [1, 2, 3]
  }
}));
// foo=hi%20there&bar%5Bblah%5D=123&bar%5Bquux%5D%5B0%5D=1&bar%5Bquux%5D%5B1%5D=2&bar%5Bquux%5D%5B2%5D=3

票数 913
EN

Stack Overflow用户

发布于 2018-11-06 19:57:26

只需使用URLSearchParamsworks in all current browsers

代码语言:javascript
复制
new URLSearchParams(object).toString()
票数 491
EN

Stack Overflow用户

发布于 2011-12-15 20:43:55

jQuery有一个这样的函数,jQuery.param(),如果你已经在使用它,你可以使用它:http://api.jquery.com/jquery.param/

示例:

代码语言:javascript
复制
var params = { width:1680, height:1050 };
var str = jQuery.param( params );

str现在包含width=1680&height=1050

票数 248
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1714786

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档