有没有什么原生函数可以把json转为url参数?

新手上路,请多包涵

我需要将 json 对象转换为 url 形式,例如:“parameter=12&asd=1”

我完成了这个:

         var data = {
            'action':'actualiza_resultado',
            'postID': 1,
            'gl': 2,
            'gl2' : 3
        };

        var string_=JSON.stringify(data);

        string_=string_.replace(/{/g, "");
        string_=string_.replace(/}/g, "");
        string_=string_.replace(/:/g, "=")
        string_=string_.replace(/,/g, "&");
        string_=string_.replace(/"/g, "");

但我想知道 javascript 或 JSON 对象中是否有任何函数可以执行此操作?

原文由 fpilee 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 432
2 个回答

使用 URLSearchParams 接口,它内置于 浏览器Node.js 中,从 2018 年发布的版本 10 开始

 const myParams = {'foo': 'hi there', 'bar': '???'};

const u = new URLSearchParams(myParams).toString();

console.log(u);

旧答案:jQuery 提供了 param 正是这样做的。如果您不使用 jquery,请查看 源代码

基本上,它是这样的:

 url = Object.keys(data).map(function(k) {
    return encodeURIComponent(k) + '=' + encodeURIComponent(data[k])
}).join('&')

原文由 georg 发布,翻译遵循 CC BY-SA 4.0 许可协议

使用 ES6 语法:

 var data = {
  'action':'actualiza_resultado',
  'postID': 1,
  'gl': 2,
  'gl2' : 3
};

let urlParameters = Object.entries(data).map(e => e.join('=')).join('&');

console.log(urlParameters);

原文由 Tareq 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题