将url中的过滤器传递给rest API

时间:2018-01-14 13:12:09

标签: javascript symfony typescript symfony-3.3

我正在构建一个Ionic App +一个Symfony3 Rest Api。 因为我需要过滤结果,我在api中创建过滤器并传递它们我必须使用这种格式:

...URL?key=value&key2=value2&array_key[]=array_value1&array_key[]=array_value2

所以在我的Ionic应用程序中,我创建了一个包含我必须传递的所有值的Object:

let filters : Object;
filters = {
    "key":"value",
    "key2":"value2",
    "array_key":["array_value1","array_value2"]
}

有没有办法将这个对象转换为等待我的api的字符串?

1 个答案:

答案 0 :(得分:-1)

所以我不知道我是不是在发明白开水,但这就是我所做的:

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('&');
  }

我很想知道是否有更好的方法可以做到这一点,因为我认为通常的任务需要很多代码......