Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 6:从JSON响应后端获取哈希表数据_Json_Angular_Typescript_Interface_Hashmap - Fatal编程技术网

Angular 6:从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], 完成课程:[

我有一个来自后端的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],
完成课程:[{“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是否正确?如何添加到现有数组课程以及如何添加新哈希?