Arrays 角度5 HttpClient';获取';如果2+;结果,但不是1个结果上的数组

Arrays 角度5 HttpClient';获取';如果2+;结果,但不是1个结果上的数组,arrays,angular,typescript,Arrays,Angular,Typescript,在我的test Angular 5 web客户机上,在对Java Jax RS REST服务器的HTTP调用中,我希望返回类型为-PlayerRecord的数组数据。(这是一个带有几个字段的简单类) 现在,如果结果在数组中有2个或更多元素,我确实可以很好地获得预期的数据数组,但是,如果我只从服务器获得1条记录,“data”不再是数组,onDataSuccess函数中的步骤将失败 你能解释一下为什么TypeScript不能保留一个1元素数组作为数组,或者我缺少了什么,以及如何解决这个问题吗? 多谢

在我的test Angular 5 web客户机上,在对Java Jax RS REST服务器的HTTP调用中,我希望返回类型为-PlayerRecord的数组数据。(这是一个带有几个字段的简单类)

现在,如果结果在数组中有2个或更多元素,我确实可以很好地获得预期的数据数组,但是,如果我只从服务器获得1条记录,“data”不再是数组,onDataSuccess函数中的步骤将失败

你能解释一下为什么TypeScript不能保留一个1元素数组作为数组,或者我缺少了什么,以及如何解决这个问题吗?
多谢各位

问题可能是您的后端

如果像get player record这样的查询可以返回多个记录,那么即使该列表包含单个元素,后端也应该返回一个列表,否则由于解析响应,您将遇到类似的问题


让服务调用有时返回单个对象,有时返回对象列表,然后期望映射一个对象数组,这没有任何意义。

问题可能是您的后端

如果像get player record这样的查询可以返回多个记录,那么即使该列表包含单个元素,后端也应该返回一个列表,否则由于解析响应,您将遇到类似的问题


让服务调用有时返回单个对象,有时返回一个对象列表,然后再返回一个要映射的对象数组,这没有任何意义。

请包含响应数据。99%的服务器发送的是一个对象而不是数组。请包含响应数据。99%的服务器正在发送一个对象而不是数组。很好。我应该看看服务器端,它返回什么。谢谢,说得好。我应该看看服务器端,它返回什么。谢谢
 this.http.get<PlayerRecord[]>(this.url)
        .subscribe(data => this.onDataSuccess(data), 
                    err => this.errorHttp.set(err));
playerRst: PlayerRecord[];

private onDataSuccess (data: PlayerRecord[]) {
    this.playerRst = data;
    console.log(this.playerRst.length);
    console.log(this.playerRst[0]);
    ...
}