我已经阅读了有关此类问题的多个答案,每个答案都有自己的答案;就我而言,我没有得到任何这些,因为我的接口根本没有像我想要的那样映射json。自从使用Root对象和嵌套接口以来,我已经尝试了多种解决方案,但是在这里,我想问哪种是在前端处理此类JSON对象的最佳方法,如何将其映射到特定的对象(一个fork -加入)。我想问一下除了使用Intellisense之外,使用接口/类/映射的真正好处是什么?它与数据传播有关吗?
所讨论的json结构:
{ Title: "", Year: "", Rated: "", Released: "", Runtime: "", …}
很简单。但是在我的服务中,我使用forkjoin来调用它:
getMovies(name: string, year?: string): Observable<any> { let shortPlot = this.http.get( "https://www.omdbapi.com/?t=" + name + "&plot=short&y=" + year + "&apikey=[my key]" ); let fullPlot = this.http.get( "https://www.omdbapi.com/?t=" + name + "&plot=full&apikey=[my key]" ); return forkJoin([shortPlot, fullPlot]); }
组件中的订阅:
getMovie() { this.spinner = true; this.movieService .getMovies(this.name.value) .subscribe((dataList: any) => { this.movies = Array.of(dataList[0]); this.spinner = false; let error: any = this.movies.map(error => error.Error); if (error[0]) { this.notfound = error[0]; this.error = true; } else { this.error = false; this.movieRate = this.movies.map(rating => rating.imdbRating.toString()); } })), error => console.log(error); }
并且在HTML中,我像这样渲染数据:
<div *ngFor="let m of movies"> <h5 class="mt-0">{{m.Title}}, {{m.Year}}</h5> </div>
因此,您可以看到我没有使用接口,应该使用。任何人都可以解决我吗?
谢谢
编辑:订阅后的日志:
我已经阅读了有关此类问题的多个答案,每个答案都有自己的答案;就我而言,我没有得到任何这些,因为我的接口根本没有像我想要的那样映射json。我...
让我们分解一下,