如何超出复杂 JSON 对象中的数组?

How to excess the array which is inside complex JSON Object?

我有一个复杂的 JSON 像这样的对象

{
    "product": {
        "expiry_type": {
            "type": "premium"
        },
        "accout_holders": {
            "admin": {
                "name": "Admin",
                "description": "Admin"
            }
        },
        "productId": "apple-inc",
        "description": "Apple Incorporation"
    },
    "sales": {
        "datasource": [{
            "name": "USA",
            "type": "direct",
            "uri": "https://www.apple.com/"
        }],
        "apps": {},
        "saleID": "SEIO578ed57EI"
    }
}

我在服务的帮助下得到了这个JSON对象。 我想访问数据源并将其保存到另一个数组中,以便我可以在 angular material 芯片中显示数据源名称。如何访问数据源数组?

非常简单,每个 JSON 对象的名称都是这样的:

 {
     "product": {
      "expiry_type": {
       "type": "premium"
      },
      "accout_holders": {
       "admin": {
        "name": "Admin",
        "description": "Admin"
       }
      },
      "productId": "apple-inc",
      "description": "Apple Incorporation"
     },
     "sales": {
      "datasource": [{
       "name": "USA",
       "type": "direct",
       "uri": "https://www.apple.com/"
      }],
      "apps": {},
      "saleID": "SEIO578ed57EI"
     }
    }

现在访问上面例子中的 datasource 数组是这样完成的 name.product.sales.datasource[0]

您不必将数据源带到另一个数组中以在芯片中显示它们。您可以迭代数据源并可以使用字符串插值来显示 angular material 芯片中的任何对象。获取方式如下。

<mat-chip *ngFor="let ds of name.product.sales.datasource"  matTooltip="{{ds.url}}">
        {{ds.name}}
      </mat-chip>

这将显示所有数据源 name 对象在一个块中,如果您将光标悬停在块上,您可以看到 url 作为工具提示。