将对象转换为 url 查询参数

Posted

技术标签:

【中文标题】将对象转换为 url 查询参数【英文标题】:Convert object to url query parameters 【发布时间】:2017-02-24 03:23:17 【问题描述】:

从角度 1 到角度 2 中的 $httpParamSerializer(params) 的等价物是什么?

【问题讨论】:

【参考方案1】:

我不知道确切的等价物,但使用URLSearchParams 它将为您处理编码。糟透了它不允许你只传递一个对象,所以你需要做类似的事情

import  URLSearchParams  from '@angular/http';

let params = new URLSearchParams();
for (let key in someObj) 
  if (somObj.hasOwnProperty(key)) 
    params.set(key, someObj[key])
  

如果出于某种奇怪的原因您只需要字符串,只需调用params.toString()。否则,如果您想将其传递给Http 请求,只需执行

let options = new RequestOptions( search: params );
http.get(url, options);

查询字符串将在 GET 请求中附加到 URL,在 POST 请求中,您可以将其设置为正文

http.post(url, params);

【讨论】:

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

怎样把查询转换为url

使用 JAX-RS 将 JSON 查询参数转换为对象

如何将 JSON 字符串转换为 URL 参数(GET 请求)?

如何将PageRequest对象转换为查询字符串?

将一个URL的search部分参数与值转换成一个json对象

ASIHttpRequest - 如何将参数的 NSDictionary 转换为 url 编码的查询参数字符串?