Получение указанного c наблюдаемого значения - PullRequest
0 голосов
/ 26 марта 2020

Так что в настоящее время я пытаюсь получить значение monthFee из этого тела ответа.

Ответы [ 2 ]

0 голосов
/ 27 марта 2020

Вы должны проверить, какие json данные вы на самом деле получаете, и получить необходимые поля, используя оператор ., как вы это делаете обычно. Но для этого есть два способа сделать это. Сначала вы можете создать class / interface, который будет представлять json. Во-вторых, нет необходимости создавать class / interface, но его будет довольно сложно поддерживать. Так что теперь у вас есть два способа сделать это, в зависимости от варианта использования. Во-первых, подписавшись на callback, вы получаете к нему доступ. Во-вторых, вы можете использовать операторы pipe и map для сопоставления результатов в вашем сервисе:

this.http.post(...).pipe(map(value => value.property))

Тогда объект, который вы получили от backend, будет сопоставлен с property

0 голосов
/ 26 марта 2020

Установите тип ответа в функции getCurrentPlan:

      .subscribe((currentPlanResponse: CurrentPlan[]) => {
        let currentPlan: CurrentPlan[] = currentPlanResponse;
        console.log('monthlyFee: ', 
          currentPlan[0].planGroupMap.sharePlans.plans[0].monthlyFee);
      });

Помните, что вы получаете массив (или вложенные массивы), так что это зависит от того, что вы хотите сделать с конечными результатами, но выше показано, кто должен получить вложенные значения.

Проверьте этот StackBlitz, который я сделал на основе вашего кода: https://stackblitz.com/edit/rxjs-aesbq2

Я прокомментировал некоторые части вашего кода, чтобы не создайте весь сервис и http-запрос, но, как вы сказали, это не было вашей реальной проблемой.

...