admin管理员组文章数量:1298125
I am trying to generate javascript object array to urlstring like:
var array = [{'name': 'foo', 'value': '2'},
{'name': 'foo', 'value': '2,8'},
{'name': 'foo', 'value': '2,10,3'}
];
// url ==> foo=2&foo=2,8&foo=2,10,3
I am trying to generate javascript object array to urlstring like:
var array = [{'name': 'foo', 'value': '2'},
{'name': 'foo', 'value': '2,8'},
{'name': 'foo', 'value': '2,10,3'}
];
// url ==> foo=2&foo=2,8&foo=2,10,3
Share
Improve this question
asked Nov 3, 2014 at 15:19
Eniz GülekEniz Gülek
4,3755 gold badges19 silver badges13 bronze badges
2
- I believe this might be possible, with a little bit of effort. What have you tried? – suff trek Commented Nov 3, 2014 at 15:20
- I tried $.param(array) but not it is not working – Eniz Gülek Commented Nov 3, 2014 at 15:22
6 Answers
Reset to default 9To be safe, you'd want to encode the component pieces:
const array = [
{'name': 'foo', 'value': '2'},
{'name': 'foo', 'value': '2,8'},
{'name': 'foo', 'value': '2,10,3'}
];
const parts = array.map((param) => {
return(
encodeURIComponent(param.name) + '=' +
encodeURIComponent(param.value)
);
});
const url = parts.join('&');
console.log(url);
You can do this
var url = "";
array.forEach(function(e){
url += e.name + "=" + e.value + "&";
});
url = url.trim("&");
You'll need to loop through the array, determine whether the array entry is the first or not (so that they will be separated with ampersands, and use the JSON field names.
var queryString = "";
for ( var i = 0; i++; i < array.length ) {
if ( i > 0 ) {
queryString = queryString + "&";
}
queryString = queryString + array[i]["name"] + "=" + array[i]["value"];
}
Try this code:
var array = [{'name': 'foo', 'value': '2'},
{'name': 'foo', 'value': '2,8'},
{'name': 'foo', 'value': '2,10,3'}
];
var output = "";
for(var i = 0; i < array.length; i++){
output = output + array[i].name+"="+array[i].value+"&"
}
output = output.substring(0, output.length-1);
alert(output)
Here the fiddle
If your array contains object with parameters 'name' and 'value', you should use:
$.param(array)
http://api.jquery.com/jquery.param/
No need loops and aux vars, Array built-in methods do it.
Array.map + Array.join:
> array.map(p => p.name + '=' + p.value).join('&')
'foo=2&foo=2,8&foo=2,10,3'
> array.map(function(param){
return param.name + '=' + param.value
}).join('&')
'foo=2&foo=2,8&foo=2,10,3'
safe use (but not expected OP's output):
> array.map(p => encodeURIComponent(p.name) + '=' + encodeURIComponent(p.value)).join('&')
'foo=2&foo=2%2C8&foo=2%2C10%2C3'
本文标签: javascriptHow to convert object array to url stringStack Overflow
版权声明:本文标题:javascript - How to convert object array to url string? - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1738529006a2093228.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论