typescript 将Json响应从Observable转换为Angular中的对象数组

2vuwiymt  于 2023-05-19  发布在  TypeScript
关注(0)|答案(1)|浏览(151)

我有一个接口

export interface Table {
    id: number;
    title: string;
    status: string;
    level: string;
    description: string;
  
}

在我的服务中,我使用HttpClient发出GET请求,从后端服务器获取数据

public tables: Array<Table>;

    public getTables(): Observable<Table[]> { 
         return this.http.get<Table[]>(this.endpoint + 'get-tables');
    }

在我的页面控制器中,我正在调用这个服务函数,我想将JSON数据转换为接口类型为“Table”的对象数组

this.tableService.getTables().subscribe((response: Table[]) => {
            this.tableService.tables = response;
});

我没有把响应转换成我的数组“tables”中的对象数组,你知道为什么吗?
期望将Json响应转换为对象数组

qojgxg4l

qojgxg4l1#

首先尝试初始化你的Table Array:

public tables!: Table[];

    public getTables(): Observable<Table[]> { 
         return this.http.get<Table[]>(this.endpoint + 'get-tables');
    }

如果您使用严格模式,此**!**(感叹号)非常重要。所以在类中声明的变量需要初始化。但这只是一个侧面说明。
如果这不起作用,那么请从服务器发布您的响应JSON。但如果它看起来像这样:_

[
  {
    id: xxx,
    name: xxx,
  },
  ...
]

那么它应该可以和我的代码一起工作。

相关问题