如何将 JSON object 转换为 api 中的 Typescript 数组
How to convert JSON object to an Typescript array in an api
我有一个 API 请求,其中 returns 以下内容:
{
"FarmerDetails": [
{
"userId": 1,
"id": 1,
"title": "delectus aut autem",
"completed": false
},
{
"userId": 1,
"id": 2,
"title": "quis ut nam facilis et officia qui",
"completed": false
}
]
}
我需要在单击按钮时显示标题,并且在单击按钮时调用此 "fetchPeople()" 函数。
fetchPeople() {
this.peopleService.fetchPeople().subscribe((res:any)=>{
this.people$ = res;
});
}
如何将我的 Object 转换为打字稿中的数组并显示特定或所有值。
当您收到来自 api 的响应时,它将以字符串格式 return。因此,您需要将其转换为 json 格式。将其解析为 json:
this.people=JSON.parse(res);
处理 API 响应对象与处理任何其他 JSON 对象没有什么不同。同样查询即可。
给出这样的回复:
{
"FarmerDetails": [
// array of objects you want to extract from the response
]
}
您可以尝试多种方法。
- 直接查询JSON对象
fetchPeople() {
this.peopleService.fetchPeople().subscribe((res:any)=>{
this.people = res.FarmerDetails;
});
}
- 管道中的地图
fetchPeople() {
this.peopleService.fetchPeople().pipe(
.map(res => res.FarmerDetails)
).subscribe(people => {
this.people = people;
});
}
当人员服务发出类似于上面 JSON 的值时,它会在 map
函数中应用转换,然后再将其返回给订阅者。
- 拔管
fetchPeople() {
this.peopleService.fetchPeople().pipe(
.pluck('FarmerDetails')
).subscribe(people => {
this.people = people;
});
}
类似于地图,当人民服务发出一个看起来像上面的 JSON 的值时,它 returns 在返回之前在 pluck
函数中命名为 属性它给订阅者。
方法 2 和 3 更可取,因为您可以将它们应用到您的服务中。假设这些来自 HTTP 请求,您可以在 get:
之后使用管道
export class PeopleService {
fetchPeople() {
return this.http.get(url).pipe(
pluck('FarmerDetails')
);
}
}
此外,变量上的“$”后缀通常用于表示可观察对象。在您的示例中,您只是存储可观察对象发出的值,因此将其命名为 people$
会让人感到困惑。为此,我将其命名为 people
。
我有一个 API 请求,其中 returns 以下内容:
{
"FarmerDetails": [
{
"userId": 1,
"id": 1,
"title": "delectus aut autem",
"completed": false
},
{
"userId": 1,
"id": 2,
"title": "quis ut nam facilis et officia qui",
"completed": false
}
]
}
我需要在单击按钮时显示标题,并且在单击按钮时调用此 "fetchPeople()" 函数。
fetchPeople() {
this.peopleService.fetchPeople().subscribe((res:any)=>{
this.people$ = res;
});
}
如何将我的 Object 转换为打字稿中的数组并显示特定或所有值。
当您收到来自 api 的响应时,它将以字符串格式 return。因此,您需要将其转换为 json 格式。将其解析为 json:
this.people=JSON.parse(res);
处理 API 响应对象与处理任何其他 JSON 对象没有什么不同。同样查询即可。
给出这样的回复:
{
"FarmerDetails": [
// array of objects you want to extract from the response
]
}
您可以尝试多种方法。
- 直接查询JSON对象
fetchPeople() {
this.peopleService.fetchPeople().subscribe((res:any)=>{
this.people = res.FarmerDetails;
});
}
- 管道中的地图
fetchPeople() {
this.peopleService.fetchPeople().pipe(
.map(res => res.FarmerDetails)
).subscribe(people => {
this.people = people;
});
}
当人员服务发出类似于上面 JSON 的值时,它会在 map
函数中应用转换,然后再将其返回给订阅者。
- 拔管
fetchPeople() {
this.peopleService.fetchPeople().pipe(
.pluck('FarmerDetails')
).subscribe(people => {
this.people = people;
});
}
类似于地图,当人民服务发出一个看起来像上面的 JSON 的值时,它 returns 在返回之前在 pluck
函数中命名为 属性它给订阅者。
方法 2 和 3 更可取,因为您可以将它们应用到您的服务中。假设这些来自 HTTP 请求,您可以在 get:
之后使用管道export class PeopleService {
fetchPeople() {
return this.http.get(url).pipe(
pluck('FarmerDetails')
);
}
}
此外,变量上的“$”后缀通常用于表示可观察对象。在您的示例中,您只是存储可观察对象发出的值,因此将其命名为 people$
会让人感到困惑。为此,我将其命名为 people
。