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

没有jQuery,没有其他框架——只有普通的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

编辑:这个函数还转换递归对象(使用php"数组"表示查询字符串)

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

Javascript相关问答推荐

如何编辑代码FlipDown.js倒计时?

React Native平面列表自动滚动

RxJS setTimeout操作符等效

如何获取转换字节的所有8位?

如何分配类型脚本中具有不同/额外参数的函数类型

Phaser框架-将子对象附加到Actor

在观察框架中搜索CSV数据

为什么useState触发具有相同值的呈现

如何使用子字符串在数组中搜索重复项

使用原型判断对象是否为类的实例

WhatsApp Cloud API上载问题:由于MIME类型不正确而导致接收&Quot;INVALID_REQUEST";错误

在Java中寻找三次Bezier曲线上的点及其Angular

根据一个条件,如何从处理过的数组中移除一项并将其移动到另一个数组?

使用带有HostBinding的Angular 信号来更新样式?

获取';无法解决导入和导入";slick-carousel/slick/slick-theme.css";';错误

Phaserjs-创建带有层纹理的精灵层以自定义外观

如何在AG-Grid文本字段中创建占位符

AG-GRIDreact 显示布尔值而不是复选框

连续添加promise 时,如何在所有promise 都已结算时解除加载覆盖

在HTML中使用meta标记来指定定制元数据以用于使用JavaScript进行检索是不是一个坏主意?