Я хочу передать приведенный ниже объект JSON и массив в параметр HTTP-запроса в мой проект Angular 5.
param1:
{"param_1":"abc","param_2":"xyz","param_3":"123"}
param2:
[{"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'));
}
Я думал, что это правильный способ сделать это, но он не работает. Причина в том, что он передает [объект Object] для param1 и [[объект Object], [объект Object]] для значения param2.
Я могу решить это, создав строку в JSON-подобной структуре и передав ее в качестве параметра. Но это не стандартный способ сделать это.
Есть ли стандартный способ решения проблемы?