Javascript 将url中的筛选器传递给rest API
我正在构建一个Ionic应用程序+一个symfony3RESTAPI。 由于需要过滤结果,我在api中创建了过滤器,要传递这些过滤器,我必须使用以下格式:Javascript 将url中的筛选器传递给rest API,javascript,symfony,typescript,symfony-3.3,Javascript,Symfony,Typescript,Symfony 3.3,我正在构建一个Ionic应用程序+一个symfony3RESTAPI。 由于需要过滤结果,我在api中创建了过滤器,要传递这些过滤器,我必须使用以下格式: ...URL?key=value&key2=value2&array_key[]=array_value1&array_key[]=array_value2 因此,在我的Ionic应用程序中,我创建了一个包含我必须传递的所有值的对象: let filters : Object; filters = { "ke
...URL?key=value&key2=value2&array_key[]=array_value1&array_key[]=array_value2
因此,在我的Ionic应用程序中,我创建了一个包含我必须传递的所有值的对象:
let filters : Object;
filters = {
"key":"value",
"key2":"value2",
"array_key":["array_value1","array_value2"]
}
有没有一种方法可以将这个对象转换成一个字符串,这个字符串等于我的api所等待的内容?所以我不知道我是不是发明了开水来实现这一点,但下面是我所做的:
public urlFiltersEncorder(filters: Object):string {
let url_parts = [];
for (let filter_key in filters) {
if(filters[filter_key] instanceof Array){
for (let filter_item of filters[filter_key]) {
url_parts.push(`${filter_key}[]=${encodeURIComponent(filter_item)}`);
}
}else{
url_parts.push(`${filter_key}=${encodeURIComponent(filters[filter_key])}`);
}
}
return '?'+url_parts.join('&');
}
我很想知道是否有更好的方法,因为我认为对于一个普通的任务有太多的代码