我的后台返回如下:
{
"FirstResponse": [
{
"MyField1": "AAA",
"MyField2": "AAAAAAA"
},
{
"MyField1": "BBB",
"MyField2": "BBBBBBB"
},
{
"MyField1": "CCC",
"MyField2": "CCCCC"
}
],
"SecondResponse": [
{
"FirstName": "FirstNameA",
"LastName": "LastNameA"
},
{
"FirstName": "FirstNameB",
"LastName": "LastNameB"
}
]
}我希望将FirstReponse映射到一个变量,并将SecondResponse映射到另一个变量。
我如何改编下面的代码?
search(): Observable<any> {
let apiURL = `......`;
return this.http.get(apiURL)
.map(res => res.json())
}更新: Excepted result In one variable this:
[
{
"MyField1": "AAA",
"MyField2": "AAAAAAA"
},
{
"MyField1": "BBB",
"MyField2": "BBBBBBB"
},
{
"MyField1": "CCC",
"MyField2": "CCCCC"
}
]一秒钟内:
[
{
"FirstName": "FirstNameA",
"LastName": "LastNameA"
},
{
"FirstName": "FirstNameB",
"LastName": "LastNameB"
}
]发布于 2018-05-07 17:53:08
您可以创建一个导出模型类的新文件,然后将其分配给返回的Observable类型。类似于:
新建model.ts文件
class FieldModel {
Field1: string;
Field1: string;
}
export class valuesModel {
MyValues: Array<FieldModel>;
}在service.ts上
import { valuesModel } from 'model';
search(): Observable<valuesModel> {
let apiURL = `https://jsonplaceholder.typicode.com/users`;
return this.http.get(apiURL)
.map(res => res.json())
}发布于 2018-05-07 18:37:55
我不明白你想要什么,因为你没有提供示例结果,
但是,尝试这行- change line:
.map(res => res.json())至
.map(res => res.json().MyValues )使用这个,你将在顶层得到类似的数组,就像你在下面的注释中提供的链接,你的问题是:https://jsonplaceholder.typicode.com/users
更新(问题更新9.10.2018之后)
当前.map(res => res.json())返回的对象有两个字段(变量) "FirstResponse“和"SecondResponse”。例如,您可以通过以下方式访问它(我从head编写代码):
public async loadData()
{
let data = await this.yourService.search().toPromise();
let firstVariable = data.FirstResponse;
let secondVariable = data.SecondResponse;
...
}search(): Observable<any> {
let apiURL = `......`;
return this.http.get(apiURL)
.map( (res) => {
let data = res.json();
return {
firstVariable: data.FirstResponse,
secondVariable: data.SecondResponse,
}
})
}发布于 2018-05-07 19:13:59
请检查此方法,使用import { Http, Response} from '@angular/http'; import { Observable } from 'rxjs/Observable';
public search(){
let apiURL = `https://jsonplaceholder.typicode.com/users`;
return this.http.get(apiURL)
.map((res: Response)=> return res.json();)
.catch((error: Response) => {
return Observable.throw('Something went wrong');
});
}对于此search()方法,您可以从您的组件订阅。
如果您想将输出映射到受尊重的模式,请提供我可以帮助的same.So格式
https://stackoverflow.com/questions/50211202
复制相似问题