首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用AngularHttpClient映射json

用AngularHttpClient映射json
EN

Stack Overflow用户
提问于 2019-01-27 04:03:49
回答 1查看 55关注 0票数 0

在更新我的项目以使用HttpClient模块而不是Http模块之后,下面的内容就不再有效了。

问题是Property json does not exist on type object。我确实需要获得items属性。我怎样才能做到这一点?

代码语言:javascript
复制
private loadLatestVideosForChannelId( channelId: string ): Promise<any[]> {

    // load videos from youtube-data-api
    let videos = this.http.get( 
            'https://www.googleapis.com/youtube/v3/search' + 
            '?key=' + this.apiKey + 
            '&channelId=' + channelId + 
            '&part=snippet,id' + 
            '&order=date' + 
            '&type=video' +
            '&maxResults=3'
        )    
        .pipe(
            // if success
            map( res => {
                return res.json()['items'];    // the problem
            }),
            // if error
            catchError( (err) => {
                console.log( "YouTube API Error > Cannot get videos for this channel :(" )
                return null;
            }),
            take(1) 
        )
        .toPromise() as Promise<any[]>;

    return videos;
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-27 04:07:21

您不需要在HttpClient中使用.json()作为响应本身已经是一个json。修改如下,

代码语言:javascript
复制
  this.http.get( 
            'https://www.googleapis.com/youtube/v3/search' + 
            '?key=' + this.apiKey + 
            '&channelId=' + channelId + 
            '&part=snippet,id' + 
            '&order=date' + 
            '&type=video' +
            '&maxResults=3'
  )    
  .pipe(
    map((res: any) => {
      return res['items'];
    })
  )

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54384961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档