Angular 6:从JSON响应后端获取哈希表数据
我有一个来自后端的JSON响应:Angular 6:从JSON响应后端获取哈希表数据,json,angular,typescript,interface,hashmap,Json,Angular,Typescript,Interface,Hashmap,我有一个来自后端的JSON响应: //用户课程 [ { id:1, 名字:“冰王”, 电子邮件:“漂亮_princess1234@gmail.com" 完成课程:[1,3], 解锁课程:[1,3,4,5,6], 完成课程:[{“1”=>[1,2,3]},{“3”=>[1,2,3,4,5,6,7]},{“4”=>[1]}] }, { id:2, 姓名:“克罗克先生”, 电子邮件:“仙女_godparents111@gmail.com" 完成课程:[3], 解锁课程:[1,3,4], 完成课程:[
//用户课程
[
{
id:1,
名字:“冰王”,
电子邮件:“漂亮_princess1234@gmail.com"
完成课程:[1,3],
解锁课程:[1,3,4,5,6],
完成课程:[{“1”=>[1,2,3]},{“3”=>[1,2,3,4,5,6,7]},{“4”=>[1]}]
},
{
id:2,
姓名:“克罗克先生”,
电子邮件:“仙女_godparents111@gmail.com"
完成课程:[3],
解锁课程:[1,3,4],
完成课程:[{“3”=>[1,2,3,4,5,6,7]},{“4”=>[1,2]}]
}
]
//已完成的课程是用户完成的所有课程。
//课程可以正在进行或已完成。
为已完成的课程创建模型(如评论中所述):
然后,创建一个服务,如下所示:
@Injectable()
export class UserService {
constructor(private http: HttpService) { }
fetchUserCourses(): Observable<IUser[]> {
return this.http.get<IUser[]>(`URL_TO_THE_USER_COURSES%);
}
}
Object.keys(firstCompletedLesson)[0]; // 3
在您提供的JSON中,要访问Crocker先生完成的课程的第一课(this.users
是您从后端检索到的所有用户):
此外,您可以像这样访问“3”:
@Injectable()
export class UserService {
constructor(private http: HttpService) { }
fetchUserCourses(): Observable<IUser[]> {
return this.http.get<IUser[]>(`URL_TO_THE_USER_COURSES%);
}
}
Object.keys(firstCompletedLesson)[0]; // 3
您还可以使用推送功能向阵列中添加:
要添加新的已完成课程,请使用:
this.users[1].completedLessons.push({ "5": [1, 2, 3] });
希望这有帮助。为CompletedLesson创建模型(如评论中所述):
然后,创建一个服务,如下所示:
@Injectable()
export class UserService {
constructor(private http: HttpService) { }
fetchUserCourses(): Observable<IUser[]> {
return this.http.get<IUser[]>(`URL_TO_THE_USER_COURSES%);
}
}
Object.keys(firstCompletedLesson)[0]; // 3
在您提供的JSON中,要访问Crocker先生完成的课程的第一课(this.users
是您从后端检索到的所有用户):
此外,您可以像这样访问“3”:
@Injectable()
export class UserService {
constructor(private http: HttpService) { }
fetchUserCourses(): Observable<IUser[]> {
return this.http.get<IUser[]>(`URL_TO_THE_USER_COURSES%);
}
}
Object.keys(firstCompletedLesson)[0]; // 3
您还可以使用推送功能向阵列中添加:
要添加新的已完成课程,请使用:
this.users[1].completedLessons.push({ "5": [1, 2, 3] });
希望这有帮助。
completedLessons:any[]
听起来很合适。我如何订阅数据并访问它?您可以使用以下类型的数组:接口completedLessons{[name:string]:number[]}
好的,听起来不错。那我怎么订阅呢?我需要做一些特别的事情还是像平时一样订阅?完成了吗?我可以通过添加[]使其成为数组吗?completedLessons:any[]
听起来很合适。我如何订阅数据并访问它?您可以使用以下类型的数组:interface completedLessons{[name:string]:number[]}
好的。那我怎么订阅呢?我需要做一些特别的事情还是像平时一样订阅?完成了吗?我可以通过添加[]使其成为数组吗?谢谢!你什么意思?做一些有结果的事情?类似这样的内容。users=users?如何访问数组中的e.x第一课?对于e.x,如果我有[{“3”:[1,2,3]}],那么我如何打印第1课?我编辑了答案,检查此编辑是否回答了您的评论问题…是的,这很好!有什么方法可以访问“3”吗?要检查课程id是否正确,以及如何添加到现有数组课程以及如何添加新哈希,请执行以下操作?谢谢!你什么意思?做一些有结果的事情?类似这样的内容。users=users?如何访问数组中的e.x第一课?对于e.x,如果我有[{“3”:[1,2,3]}],那么我如何打印第1课?我编辑了答案,检查此编辑是否回答了您的评论问题…是的,这很好!有什么方法可以访问“3”吗?检查课程id是否正确?如何添加到现有数组课程以及如何添加新哈希?