Reputation: 1490
I am trying to get the value from nested array. Some how I was not able to get the value.
Here is my JSON
{
"VersionNum": "",
"studyLevel": [{
"countryName": "StudyLevel",
"FS": "15-JAN-2020",
"LS": "10-Jan-2020",
"FI": "08-DEC-2019",
"LI": "10-FEB-2019",
"getData": [{
"countryId": 0,
"userId": "4",
"Username": "Vimal",
"FI": "12-JAN-2020",
"LI": "21-Feb-2020",
"experience": 5
},
{
"countryId": 0,
"userId": "5",
"Username": "Jack",
"FI": "12-JAN-2020",
"LI": "21-Feb-2020",
"experience": 3
},
{
"countryId": 0,
"userId": "6",
"Username": "James",
"FI": "12-JAN-2020",
"LI": "21-Feb-2020",
"experience": 1
}
]
},
{
"countryName": "Country 1",
"FS": "15-JAN-2020",
"LS": "10-Jan-2020",
"FI": "08-DEC-2019",
"LI": "10-FEB-2019",
"getData": [{
"countryId": 0,
"userId": "4",
"Username": "Paul",
"FI": "12-JAN-2020",
"LI": "21-Feb-2020",
"experience": 5
},
{
"countryId": 0,
"userId": "4",
"Username": "Smith",
"FI": "12-JAN-2020",
"LI": "21-Feb-2020",
"experience": 5
},
{
"countryId": 0,
"userId": "4",
"Username": "Trumble",
"FI": "12-JAN-2020",
"LI": "21-Feb-2020",
"experience": 5
}
]
}
]
}
I am trying to access Username from getData Here is my ts code
const getUserData = this.dataService.getuserList().subscribe((data:any) => {
console.log(data);
this.reponsearray = data;
this.responseuserName = data.getData[0].Username;
});
Here is my HTML
<ng-container *ngFor="let item of responseuserName ">
<th [attr.colspan]="keycount" class="User-names">{{item.userName}}</th>
</ng-container>
Please let me know what I am doing wrong here.
Upvotes: 0
Views: 135
Reputation: 38199
studyLevel
array has desired data:
const getUserData = this.dataService.getuserList().subscribe((data:any) => {
console.log(data);
this.reponsearray = data;
this.responseuserName = data.studyLevel[0].getData[0].Username;
});
UPDATE:
You can create a nested *ngFor
:
<div *ngFor="let row of response.studyLevel">
<div *ngFor="let col of row.getData">
{{col.Username}} {{col.FI}} {{col.LI}}
</div>
</div>
As a suggestion, you could rename responseuserName
to responseuserNames
.
The work stackblitz example can be seen here.
Upvotes: 0
Reputation: 2327
you can try like this. here as you can see we have an array of object the studyLevel
and inside that we have another array of the object getData
so we are using the two *ngFor
loop one inside another
TS
const getUserData = this.dataService.getuserList().subscribe((data:any) => {
console.log(data);
this.responseuserName = data.studyLevel;
});
HTML
<ng-container *ngFor="let item of responseuserName ">
<ng-container *ngFor="let data of intem. getData >
<th [attr.colspan]="keycount" class="User-names">
{{data.userName}}</th>
</ng-container>
</ng-container>
Upvotes: 1