Доступ к значению JSON в Angular 7 - PullRequest
0 голосов
/ 26 сентября 2019

Здравствуйте, я пытаюсь получить доступ к определенному ключу из JSON.Я использую node.js и angular 7 JSON, который я получил, является stringfy, и он получен из API.

Это JSON, который я получил

  "search": {
    "entry": [
      {
        "dn": "uid=080030781,c=mx,ou=s,o=i.com",
        "attribute": [
          { "name": "mail", "value": ["CAMILA.CAMPOS.TELLEZ@mail.com", "MX08@mail.com"] }]
      }
    ],
      "return": {
      "code": 0,
        "message": "Success",
          "count": 1
    }
  }
}

Мне нужен доступ кключ «значение», потому что мне нужно получить значение «camila.campos.tellez@mail.com».Я получаю JSON из API, объявленного в файле node.js с именем app.js, а затем получаю ответ от него с помощью этого файла service.ts

 getApproverMail(name) {
    console.log('entered to rootservice');
    return this.http.get(this.baseUrl + '/costing/operations?name=' + name);
  }

Наконец, я могу получить к нему доступ через компонент.ts fil с этим кодом

findApproverMail() {

    this.rootService.getApproverMail(this.aproverName).subscribe((res) => {
      this.email = res;
      console.log('Test: ' + res);
    });

  }

И консоль браузера печатает JSON, который я вам покажу.Но как я могу получить доступ только к значению почты?PD Мне нужна только почта, потому что после того, как я ее получил, веб-сайт должен отправить электронное письмо в этом направлении

1 Ответ

0 голосов
/ 26 сентября 2019

JSON означает нотацию объектов JavaScript.Любой допустимый JSON является объектом в JavaScript (и TypeScript).Вы можете использовать точечную нотацию для навигации по объекту:

findApproverMail() {

    this.rootService.getApproverMail(this.aproverName).subscribe((res) => {
      this.email = res.search.entry[0].attribute[0].value[0];
      console.log('Test: ' + res);
    });

  }

Я бы рекомендовал определить interface в форме того, что вы ожидаете от сервиса.Это чище, чем просто индексирование вокруг any типизированного объекта.

Также обратите внимание, что я жестко кодирую 0 индексы, потому что это отвечает на ваш вопрос.Вы можете подумать о более динамичном / гибком способе получения нужного адреса или элементов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...