首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将json响应转换为角2中的数组时出错

将json响应转换为角2中的数组时出错
EN

Stack Overflow用户
提问于 2017-12-17 20:31:30
回答 2查看 646关注 0票数 0

我正在尝试将json响应转换为角2中的数组。

.ts文件

代码语言:javascript
运行
复制
  response;
  resp;
  constructor(private http:Http) {
   }
   get()
   {
         this.http.get("http://localhost:3000/items")
         .map(res=>res.json())
         .subscribe(data=>this.response = JSON.stringify(data))

           this.resp = JSON.parse(this.response);
      }

component.html

代码语言:javascript
运行
复制
 {{response}}
 <ul>
    <li *ngFor="let k of resp">{{k}}</li>
  </ul>

</div>

虽然{{ response }只是导致显示整个json内容,但尽管使用JSON.parse(),我还是无法迭代在resp中检索到的响应。

如何将响应转换为数组并访问各个属性?

EN

回答 2

Stack Overflow用户

发布于 2017-12-28 13:24:44

根据您的代码,我看不到您正在设置resp变量。

您正在响应变量中存储值,并在resp变量上进行迭代。

它应该是(让k的反应)而不是(让k的重新)。

票数 0
EN

Stack Overflow用户

发布于 2018-01-06 18:36:08

您只能使用ngFor迭代数组。如果您的响应是json对象,则不能使用ngFor直接迭代它。为此,您需要使用管道来通过ngFor迭代json对象。

你可以创建一个管道。

代码语言:javascript
运行
复制
@Pipe({ name: 'keys',  pure: false })
export class KeysPipe implements PipeTransform {
    transform(value: any, args: any[] = null): any {
        return Object.keys(value)
    }
}

将此管道导入您的模块并将其传递给解密。然后您可以在html中使用它,如下所示:

代码语言:javascript
运行
复制
 {{response}}
 <ul>
    <li *ngFor="let k of resp | keys">{{k}}</li>
  </ul>

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

https://stackoverflow.com/questions/47859161

复制
相关文章

相似问题

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