【发布时间】:2018-07-06 15:30:35
【问题描述】:
我想将下面的 JSON 对象和数组传递给我的 Angular 5 项目的 HTTP 请求参数。
参数1:
{"param_1":"abc","param_2":"xyz","param_3":"123"}
参数2:
[{"f_key_1":"id1","f_key_2":"12","f_key_3":"xyz1"},{"f_key_1":"id2","f_key_2":"13","f_key_3":"xyz2"}]
通过使用以下代码从对象和数组创建字符串
public updateParam(dataParam: any) {
let params = new URLSearchParams();
for (let field in dataParam) {
if (typeof (dataParam[field]) == 'object' || dataParam[field] instanceof Array) {
params.set(field, JSON.stringify(dataParam[field]));
} else {
params.set(field, dataParam[field]);
}
}
return this.http.patch('param/update', params.toString())
.map((res: Response) => res.json())
.catch((error: any) => Observable.throw(error.json().error || 'Server error'));
}
我认为这是正确的做法,但它不起作用。原因是,它为 param1 传递 [object Object],为 param2 值传递 [[object Object],[object Object]]。 我可以通过在类似 JSON 的结构中创建字符串并将其作为参数传递来解决它。但这不是执行此操作的标准方法。
有什么标准方法可以解决这个问题吗?
【问题讨论】:
标签: typescript angular5