可以以某种方式将json对象附加到URLSearchParams对象上吗?
因此,与其说:
urlSearchParams.append('search', 'person');
它是:
urlSearchParams.append({search: "person"});
我的回答感谢Darshak Gajjar的回答
可以通过以下方式使用JSON对象:
let test_this = [{"search": "person"}, { search: "another person"}];
var json = JSON.stringify(test_this);
urlSearchParams.append("myobj", json);
return this.http.post(this.post_url, urlSearchParams, options) //options being your own RequestOptions
7条答案
按热度按时间qyzbxkaa1#
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign
这样的东西也许能用
urlSearchParams = Object.assign(urlSearchParams, {search: "person"});
编辑:使用普通的javascript的替代解决方案。此外,我认为URLSearchParams只是一个普通的js对象,但实际上您必须使用
get
、set
和append
来访问属性。编辑bis:
.append()
支持重复使用相同的键/参数名称,而.set()
将覆盖以前的值。9bfwbjaz2#
可能正在使用以下代码,您可以在URL搜索参数中传递整个JSON对象
dy1byipe3#
没有用于此的API。您只需枚举属性并手动追加它们,例如使用以下函数:
enyaitl34#
我想分享我对
Angular2
的回答,并选择发送Array
。这就是我使用get
函数的方式:这项服务大概是这样的:
rggaifut5#
yftpprvb6#
以下是我的做法。我们有一个简单的要求,其中对象只是一个键值对,其中的值可以是字符串或数组。我们还没有找到嵌套对象的用例。
因此,假设我们希望将此对象转换为查询字符串,反之亦然:
然后我们有两个函数来解析和串行化:
所以结果应该是
"?ini=ini&itu=itu&ayo%5B%5D=desc&ayo%5B%5D=asc"
。这类似于本例中的数组格式。请注意,这可能不是战斗测试,但对我们来说,我们并没有真正复杂的对象结构。
o75abkj47#
超级简单答案/示例: