将 javascript 对象转换为 url 查询

Posted

技术标签:

【中文标题】将 javascript 对象转换为 url 查询【英文标题】:Convert javascript object into a url query 【发布时间】:2014-12-30 16:22:33 【问题描述】:

我正在尝试做与this question 相反的操作,即将javascript 对象转换为url 末尾的查询。这是针对键/值方面潜在的巨大且完全随机的字符串。例如,

activity = myKey:"randomString"

'<img src="images/image.gif?' + activity + '">'

会还给我的:

<img src='images/image.gif?myKey:"randomString"'>

【问题讨论】:

http://***.com/q/5505085/798682 的重复项?我看到您的示例有所不同,但您的“与此问题相反”匹配。 【参考方案1】:
var queryValues=
  param:"0",
  s:"stack",
  o:"overflow",
  myKey:"randomString"
;
var qparts=Object.keys(queryValues).map(function(k)
  return [k,queryValues[k]].map(encodeURIComponent).join("=");
);
var queryString=qparts.length?"?"+qparts.join("&"):"";


/*
queryString:
?param=0&s=stack&o=overflow&myKey=randomString
*/

然后通过与 queryString 连接来修改原始 url。像这样:

images/image.gif?param=0&s=stack&o=overflow&myKey=randomString

另外,根据您的问题,您想要一个如下所示的网址:

images/image.gif?myKey:"randomString"

这看起来格式不正确,与您链接到的另一个问题中发布的内容不完全相反。所以我给了你一个 sn-p 来生成一个格式良好的查询字符串。

【讨论】:

【参考方案2】:
var myURL = '<img src="images/image.gif?' + JSON.stringify(activity) + '">';

【讨论】:

你真的想做encodeURIComponent(JSON.stringify(activity)) 他说的,在编码方面,特别是你想解决什么问题?

以上是关于将 javascript 对象转换为 url 查询的主要内容,如果未能解决你的问题,请参考以下文章

将对象转换为 url 查询参数

怎样把查询转换为url

JSON 字符串转换为 JavaScript 对象

将对象转换为对象列表 Javascript

对象值的Javascript数组转换为多维数组

JavaScript 将文本URL转换为链接