如何在 RXJS Angular 5 中观察响应中没有特定名称的对象 JSON

How to observe objects in response JSON with no specyfic names in RXJS Angular 5

情况是这样的。 我需要在收到 API 的响应后动态填充 mat-table。作为响应 JSON json 数组 "files".

中有那些匿名 json 对象
"files": [
      {
        "title": "dummy",
        "link": "https://t1.mogree.com/backmeister_content/pdfs/presentation/31347009705473837693867181531764_a.pdf",
        "attachment": "dummy-atachment_name.pdf",
        "userTypes": [
          "ADM",
          "INT"
        ],
        "itemid": "31347009705473837693867181531764_a.pdf",
        "type": 17,
        "itemproviderid": 0,
        "detailtype": 0
      },
      {
        "title": "dummy",
        "link": "https://t1.mogree.com/backmeister_content/pdfs/presentation/46728595498675807527841664269653_a.pdf",
        "attachment": "dummy-atachment_name.pdf",
        "userTypes": [
          "ADM",
          "INT"
        ],
        "itemid": "46728595498675807527841664269653_a.pdf",
        "type": 17,
        "itemproviderid": 0,
        "detailtype": 0
      }

我不知道如何在这个 table 的这个项目上设置 observable。我刚收到 "files" 件商品。我需要访问那些匿名对象。 现在我的请求函数看起来像这样:

ngOnInit() {
    this.apiService.getAttachments()
      .map(data => data['detailresponse'])
      .map(data => data['files'])
      .subscribe(files => {
          });
  }

我需要访问以下字段:"title"、"link"、"itemId"。 也许我需要在 subscribe() 中使用第二个 observable??

试试这个,如果有效请告诉我!

ngOnInit() {
    this.apiService.getAttachments()
      .map(data => data['detailresponse'])
      .map(data => data['files'])
      .subscribe(files => {
          files.forEach(file => {
              console.log(file.title, file.link, file. itemId);
          });
      });
}

假设您的服务 returns 是一个 JSON 对象数组。在您的订阅函数中,您需要将其作为通用数组进行迭代,然后对其进行解析。

this.api.getAttachments()
   .subscribe( data => {
            data.files.forEach(file => { 
                          console.log(file.title, file.link, file.itemId)

识别结构的一种简单方法是在订阅调用中放置一个调试器,并通过在开发控制台中展开它来查看对象层次结构。然后您可以基于该层次结构进行解析。