Доступ к объекту в объекте в формате json в Typescript - PullRequest
0 голосов
/ 26 декабря 2018

Я использую API покоя от Angularjs 6. У меня есть такой ответ от API в консоли.

{
"flag": true,
"msg": "User credentials are matched",
"data": {
    "userId": 1234566,
    "password": "67899877@abdc",
    "firstName": "abcd",
    "lastName": "fghj",
    "email": "abcd@gmail.com",
    "status": 0,
    "role": 4
}
}

Мой угловой код указан ниже:

import { Component, OnInit } from '@angular/core';
import { HttpClient } from '@angular/common/http';

 @Component({
 selector: 'app-root',
 templateUrl: './app.component.html',
 styleUrls: ['./app.component.css']
 })
 export class AppComponent implements OnInit {
  title = 'getting-started-angular';

  constructor(private http: HttpClient) {}

  ngOnInit(): void {
   interface UserResponse {
      userId: Int16Array;
      password: String;
      firstname: String;
      lastname: String;
      status: Int16Array;
      role: Int16Array;
 }


  interface  UserValues {
flag: boolean;
msg: string;
 data: Object;
  }


 this.http.get<UserValues>('http://localhost:8080/v1/user? 
 userId=1234566&password=67899877@abdc').subscribe(result => {

  console.log(result);
console.log('flag:' + result.flag);
console.log('msg:' + result.msg);
console.log('firstname:' + result.data);
  });

  }
  }

Теперь яЯ могу получить доступ к флагу и сообщению с консоли при входе в систему.Как я могу получить доступ к данным: {} значения из ответа JSON ??

1 Ответ

0 голосов
/ 26 декабря 2018

Интерфейсы должны быть такими.

interface UserResponse {
      userId: Int16Array,
      password: string,
      firstName: string,
      lastName: string,
      email: string
      status: Int16Array,
      role: Int16Array,
 }

 interface  UserValues {
      flag: boolean;
      msg: string;
      data: UserResponse;
 }


console.log('firstname:' + result.data.firstName);
...