繁体   English   中英

RxJs-可观察-如何从JSON对象获取数据

[英]RxJs- Observable - How to fetch data from JSON Object

我有一个如下所示的JSON响应。我想以两个单独的数组(例如[abc,xyz]和[aa,bb])从此可观察对象获取数据。 是否有可能使用rx observables map和switchmap在相同的observable中获得两个数组。

this.data$ = Observable.of({
      "data": [
        {
          "firstname": "abc",
          "lastname": "aa"
        },
         {
          "firstname": "xyz",
          "lastname": "bb"
        }
      ]
    })  .map(res => res.data)
      .switchMap(dataArray => {
        return Observable.from(dataArray);
      })
      .map((arrayResp: any) => {
        return ( arrayResp.firstname);
      }).toArray()

在这里,我只能得到一个数组。 是否有可能仅通过此方法获得两个数组。

您可以简单地使用arrays map函数:

.pipe(map(res => res.data),
    map(a => {
        return {
            firstnames: a.map(_ => _.firstname),
            lastnames: a.map(_ => _.lastname)
        }
    }));

这是一个正在运行的示例。

您有json字符串,因此您需要在switchMap方法中这样做

 .switchMap(dataArray => {
        return Observable.from(JSON.parse( dataArray));
      })

或者你也可以这样做

this.data$ = Observable.of(JSON.parse(`{
      "data": [
        {
          "firstname": "abc",
          "lastname": "aa"
        },
         {
          "firstname": "xyz",
          "lastname": "bb"
        }
      ]
    }`).subscribe(res=> console.log(res.data));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM