【问题标题】:How can I convert RestApi object data to Array?如何将 RestApi 对象数据转换为数组?
【发布时间】:2020-08-10 17:20:25
【问题描述】:

如何将这些数据从 PokeApi 转换为数组?我不能在 Angular 的 html 中调用它,因为我不能将它分配给数组。它给出了一个错误,因为它的返回是 Object ..

 getPokemonDetail(index) {
    return this.http.get(`${this.baseURL}/pokemon/${index}`).pipe(
      map((poke) => {
        let sprites = Object.keys(poke['sprites']);
        poke['images'] = sprites
          .map((spriteKey) => poke['sprites'][spriteKey])
          .filter((img) => img);
        return poke;
      })
    );
  }

我在github上上传了代码,有人可以检查错误在哪里吗? 不幸的是我没有做到:(

github link

【问题讨论】:

    标签: arrays json angular rest object


    【解决方案1】:

    解决方案1

    从 Angular 6 开始,现在有一个键值管道运算符。简单地执行以下操作以在 html 中工作

    *ngFor="for item in objectList | keyvalue"
    

    解决方案2

    要将对象转换为数组,只需将该对象放在[]中即可。假设您的对象在图像变量中,则

    Let imageArray = [this.image]
    

    更新 api 调用函数并在 subsvribe 内将此响应转换为数组对象

    getPokemonDetail(index) { return this.http.get(`${this.baseURL}/pokemon/${index}`) }
    
        
    

    【讨论】:

    • 谢谢我都试过了,错误消失了,但我无法获取数据。 getPokemonDetail(index) { return this.http.get(${this.baseURL}/pokemon/${index}).pipe( map((poke) => { let sprites = Object.keys(poke['sprites']); poke['images'] = sprites .map((spriteKey) => poke['sprites'][spriteKey]) .filter((img) => img); return [poke]; }) ); }
    • 可以分享一下api的响应吗?
    • 在这个链接里你能看到吗:pokeapi.co/api/v2/pokemon/4
    猜你喜欢
    • 1970-01-01
    • 2018-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-23
    相关资源
    最近更新 更多