【问题标题】:extract JSON data in Angular2在Angular2中提取JSON数据
【发布时间】:2017-06-26 15:36:27
【问题描述】:

我有以下 JSON 输出:http://pastebin.com/9bHaBrbX

我想让这个伪代码成为现实:

For every Model {
     For every Year {
         For every Style {
           if submodel.body is NOT in Array:
              load submodel.body to Array;
         }
     }
}

我想将此数组存储在我的 model.component 中,以便我可以使用它来制作按钮,例如:

<button *ngFor="let item in Array" ...> item </button>

如何从我的 json 响应中提取我想要的数据 (Model[x].Years[y].Style[z].submodel.body)(其中 x,y,z 是变量)?

我无法概念化如何使用 JS/TS/Angular2 遍历嵌套的 json 对象。

【问题讨论】:

  • 听起来不错。你有问题吗?见How to Ask
  • SO 不是代码编写服务。如果您想make it a reality,那么您必须编写一些代码......先自己尝试一下,如果您遇到困难,请返回您的具体问题(以及详细信息)。
  • @igor,如何从我的 json 响应中提取这些数据?
  • JSON 看起来不错。您想要遍历哪些确切位置?
  • JSON 提示。制作接口。然后开始解开嵌套的东西,从顶层开始,就像你的伪代码一样“深入挖掘”。开始迭代模型,然后是年份,然后是样式……从顶层开始。如果您遇到问题,请回来,然后我们可以提供帮助:)

标签: javascript json angular typescript


【解决方案1】:

这是一个提示:

<div *ngFor="let years of model.years">
 <div *ngFor="let year of years">
  <div *ngFor="let styles of year.styles">
   <div *ngFor="let style of styles">
    <!-- your conditions, submodel.body... -->
   </div>
  </div>
 </div>
</div>

旁注:我同意上述其他人的观点,您应该尝试自己编写代码。

【讨论】:

  • 我没有尝试显示这些数据,而是尝试使用组件中的函数提取所有 submodel.body 值,该函数过滤掉重复项
【解决方案2】:

使用简单的http 请求,它将下载数据并将其存储在items 变量中。然后你可以用它做任何你想做的事情 - 显示、排序或只是保留。

https://plnkr.co/edit/bU7W6f0aO6eelvyCnKzc?p=preview

【讨论】:

  • 我是这样做的:getModels(): void { this._EdmundsAPIService.getModels(this.route.snapshot.params[ 'data' ]) .subscribe( models =&gt; this.models = models, error =&gt; this.errorMessage = &lt;any&gt;error); } 但是当我这样做时 ngAfterContentInit() { for (let i = 0; i &lt; this.models.length; i++) { console.log(this.models[1]); } 我得到错误
  • 不应该是this.models[0]吗?不管怎样,用我的方法,其实是最好的方法。
猜你喜欢
  • 2020-05-27
  • 2021-09-22
  • 2021-06-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-03
  • 1970-01-01
相关资源
最近更新 更多