当将它作为forkJoin订阅时,在前端/角度中处理JSON响应的最佳方法?]

问题描述 投票:0回答:1

我已经阅读了有关此类问题的多个答案,每个答案都有自己的答案;就我而言,我没有得到任何这些,因为我的接口根本没有像我想要的那样映射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>

因此,您可以看到我没有使用接口,应该使用。任何人都可以解决我吗?

谢谢

编辑:订阅后的日志:

enter image description here

我已经阅读了有关此类问题的多个答案,每个答案都有自己的答案;就我而言,我没有得到任何这些,因为我的接口根本没有像我想要的那样映射json。我...

json angular interface fork-join
1个回答
1
投票

让我们分解一下,

© www.soinside.com 2019 - 2024. All rights reserved.