我可以 return raw json angular2 中的响应吗
Can I return raw json response in angular2
angular2 是否有可能对 return 原始 json 响应?例如
组件
getrawJson(){
this.someservice.searchJson()
.subscribe( somelist => this.somelist = somelist,
error => this.errorMsg = <any>error);
}
服务
searchJson(num: number, somestring: string, somestring2: string): Observable<stringDataObj> {
let body = JSON.stringify({"someJsonData"[{num, somestring, somestring2}]});
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
return this.http.post(URL, body, options)
.map(this.jsonObj)
.catch(this.handleError);
}
private jsonObj(res: Response) {
let body;
return body{ };
}
上面的实现 returns Array 。我是否有办法获取服务 json 编辑的原始 json 数据?我期待 json 像下面这样的回应
{
"dataParam":[{
"num": "08",
"somestring": "2016-10-03",
"somestring2": "2016-10-03"
}],
"someDatalist":[{
"one": "08",
"two": 1,
"three": "2016-10-03"
}]
}
谢谢!
private jsonObj(res: Response) {
return res.json() || {} ;
}
当然可以!!
实际上是 angualar2 returns 以 Observable
的形式响应,而不是像 angular1.x 中的承诺,所以为了将可观察到的原始 Json 格式转换为原始 Json 格式使用 angular2 的默认方法,即
res.json()
除了 angular 提供的 .json()
之外,没有其他方法可以在此处进行描述以获取更多信息。
方法包括
- res.text()
- res.status
- res.status正文
等等
https://angular.io/docs/ts/latest/api/http/index/Response-class.html
更新
像这样使用你的代码
return this.http.post(URL, body, options)
.map(res => {return res.json()})
.catch(this.handleError);
}
angular2 是否有可能对 return 原始 json 响应?例如
组件
getrawJson(){
this.someservice.searchJson()
.subscribe( somelist => this.somelist = somelist,
error => this.errorMsg = <any>error);
}
服务
searchJson(num: number, somestring: string, somestring2: string): Observable<stringDataObj> {
let body = JSON.stringify({"someJsonData"[{num, somestring, somestring2}]});
let headers = new Headers({ 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
return this.http.post(URL, body, options)
.map(this.jsonObj)
.catch(this.handleError);
}
private jsonObj(res: Response) {
let body;
return body{ };
}
上面的实现 returns Array 。我是否有办法获取服务 json 编辑的原始 json 数据?我期待 json 像下面这样的回应
{ "dataParam":[{ "num": "08", "somestring": "2016-10-03", "somestring2": "2016-10-03" }], "someDatalist":[{ "one": "08", "two": 1, "three": "2016-10-03" }] }
谢谢!
private jsonObj(res: Response) {
return res.json() || {} ;
}
当然可以!!
实际上是 angualar2 returns 以 Observable
的形式响应,而不是像 angular1.x 中的承诺,所以为了将可观察到的原始 Json 格式转换为原始 Json 格式使用 angular2 的默认方法,即
res.json()
除了 angular 提供的 .json()
之外,没有其他方法可以在此处进行描述以获取更多信息。
方法包括
- res.text()
- res.status
- res.status正文 等等
https://angular.io/docs/ts/latest/api/http/index/Response-class.html
更新
像这样使用你的代码
return this.http.post(URL, body, options)
.map(res => {return res.json()})
.catch(this.handleError);
}