Foreach Json 结果 Ionic Angular

Posted

技术标签:

【中文标题】Foreach Json 结果 Ionic Angular【英文标题】:Foreach Json results Ionic Angular 【发布时间】:2021-06-21 22:23:15 【问题描述】:

我希望能够从 JSON 文件中检索结果,但我找不到解决方案。 我可以从普通 JSON 中检索,但不能以 Object 格式检索。

打字稿

this.http.get('http://example.com/api')
  .subscribe((data) => 
    console.log(data);
  );

API JSON 文件是这样显示的:


  1: id:1, name: "string"
  2: id:1, name: "string"
  3: id:1, name: "string"
  4: id:1, name: "string"

我希望之后能够对这些数据进行循环

<ion-item *ngFor="let item of data" >
  <div>
    item.name
  </div>
</ion-item>

提前谢谢你

这是我的问题的答案:

<ion-item *ngFor="let item of data | keyvalue" >
  <div>
     item.key   item.value['data'] 
  </div>
</ion-item>

【问题讨论】:

我们在这里需要更多的上下文:“JSON 文件”是指 JSON API? “找不到解决方案”是什么意思? “普通 JSON 但不是对象格式”是什么意思 - 这没有意义,请举一些例子。 另外,您的示例 JSON 不是 JSON,它是一个 javascript 对象。 我有一个从 API 传输的 JSON 文件,里面的数据如下例所示。 当我说正常时,我的意思是没有数字,结果为 1:, 2: ... 但如果这是 API 决定返回的内容,您必须处理它吗?我不确定您要做什么。您展示的示例是具有键 1-4 的对象。也许你想要一个数组,像这样? [id:1, name: "string", id:1, name: "string",...],无论如何,在您的问题中包含您期望或想要实现的目标会非常有帮助:) 【参考方案1】:

你有多种可能循环这个响应对象:

    使用来自角度的keyvalue 管道:*ngFor item of data | keyvalue 使用Object.values(data)Object.entries(data) 转换为数组。前者只给你值对象,后者也给你“数字”

您需要记住:返回的对象没有定义的顺序。所以如果你使用任何一种方法,迭代的顺序都没有定义,可能是随机的。

它可能在您的机器/浏览器上是正确的,但您不应该依赖它。因此,请确保在将数据转换为数组后对其进行排序(如果数据应该是有序的)。

如果订单是由原始对象中的“数字”键给出的,我建议使用Object.entries,它会给你一个键值元组数组

[[1, id:1, name: "string"], [...], ...]

您可以通过第一个元组项目轻松排序。

【讨论】:

我是 Ionic 的新手,并不了解所有内容,我尝试寻找最新版本的示例以试图理解但无济于事。你有一个例子让我试着理解吗? angular.io/docs 是你最好的朋友。我认为角度文档非常广泛。键值管道示例:angular.io/api/common/KeyValuePipe#examples 但你知道 typescript 或者至少知道 javascript? 好的,我找到了,感谢您的指导,我会更新答案。

以上是关于Foreach Json 结果 Ionic Angular的主要内容,如果未能解决你的问题,请参考以下文章

foreach 在 C# 中使用 split 并返回 Json 结果

angular学习笔记

InAppPurchase 错误

如何在 ionic 2 应用程序中访问角度全局?

ionic 使用mobisscrolls,实现日期选择的插件

ionic 5(电容器)给出 NullInjectorError 空对象磁力计无法访问离子原生功能,