# 国家智慧教育平台结构 1. 总的结构文件: `https://s-file-2.ykt.cbern.com.cn/zxx/ndrs/prepare_lesson/teachingmaterials/parts.json` 1. 这个文件会结下出来多个part_100.json part_101.json part.102.json 2. 再继续解析 2. 再继续解析到每一本书的part_100.json: 以高中数学A必修第一册为例: 1. 书本id,也可以称teachingmaterialId,是:85c19ef2-23a4-43b6-94dd-8c7898639b5d 2. 拼接成资源文件url:`https://s-file-2.ykt.cbern.com.cn/zxx/ndrs/prepare_lesson/teachingmaterials/85c19ef2-23a4-43b6-94dd-8c7898639b5d/resources/part_100.json` 3. 拼接成课本结构章节url:`https://s-file-2.ykt.cbern.com.cn/zxx/ndrv2/national_lesson/trees/85c19ef2-23a4-43b6-94dd-8c7898639b5d.json` 3. 每一本书的part_100.json,含有所有的资源索引。接下来继续解析: 1. ## smartedu 下载json和创建目录 1. 目录结构: 1. 最上层根目录:all_parts.json; 这个文件固定;从这个文件里,找tag_dimension_id,学段zxxxd、学科zxxxk;建立相应的目录;找global_resource_id教科书id,拼接教科书的url:part_100.json和trees.json; 拼接方法:https://s-file-1.ykt.cbern.com.cn/zxx/ndrs/national_lesson/teachingmaterials/{global_resource_id}/resources/part_100.json https://s-file-2.ykt.cbern.com.cn/zxx/ndrv2/national_lesson/trees/{global_resource_id}.json ; 建立教科书目录title;在教科书目录title里存放拼接并下载的两个json; 2. 第二层目录:学段,分为:小学 初中 高中 3. 第三层目录:学科,如:数学、英语、化学等; 4. 第四层目录:教科书,如:人教版第一册、苏教版第二册等;文件:part_100.json trees.json; all_classroom_links.json(需要自己组织); 5. 第四层all_classroom_links.json如何构造: 在part_100.json中,查找chapter_ids;一般有2个-3个,或许有更多;根据chapter_ids,在trees.json中,查找trees.json中id对应的title名字;chapter_ids的第一个字段是“章”,最后一个字段是最小单位的“小节”,把最后一个字段记录为chapter_id;中间字段是中间的节,除去最后一个,前面的记录为ids和titles;在part_100.json中,还需要找到id字段,这个id与chapter_ids同级,把它记录为activity_id,同理记录title为activity_title; part_100.json中的teachmeterial_ids都是一样的值,把它记录为teachingmaterialId;所以all_classroom_links中的链接,构造为:https://basic.smartedu.cn/syncClassroom/classActivity?activityId={activity_id}&chapterId={chapter_id}&teachingmaterialId={teachmeterial_ids}&fromPrepare=0&classHourId=lesson_1 ,构造的json: ```json { "teachmeterial_ids": "85c19ef2-23a4-43b6-94dd-8c7898639b5d",//part_100.json中的teachmeterial_ids "chapter_ids": { "ids": ["",""],//part_100.json中的chapter_ids除去最后一个元素的其他元素; "titles": ["",""], //根据上面的ids,去trees.json查对应的title; } "chapter_id": "", //part_100.json中的chapter_ids的最后一个元素; "activity_title": "",//part_100.json第一层的title "activity_id": "", //part_100.json第一层的id "activity_url": "https://basic.smartedu.cn/syncClassroom/classActivity?activityId={activity_id}&chapterId={chapter_id}&teachingmaterialId={teachmeterial_ids}&fromPrepare=0&classHourId=lesson_1" }, { "teachmeterial_ids": "85c19ef2-23a4-43b6-94dd-8c7898639b5d", "chapter_ids": //part_100.json中的chapter_ids除去最后一个元素的其他元素; { "ids": ["",""], "titles": ["",""], } "chapter_id": "", //part_100.json中的chapter_ids的最后一个元素; "activity_title": "", "activity_id": "", "activity_url": "https://basic.smartedu.cn/syncClassroom/classActivity?activityId={activity_id}&chapterId={chapter_id}&teachingmaterialId={teachmeterial_ids}&fromPrepare=0&classHourId=lesson_1" } ``` 6. 第五层目录:根据all_classroom_links.json,下载detail.json 1. 根据all_classroom_links.json中的"chapter_ids"下面的"titles"的第一个元素titles1的名字,创建目录; 2. 下载detail.json. 拼接并下载url:https://s-file-2.ykt.cbern.com.cn/zxx/ndrv2/national_lesson/resources/details/{activity_id}.json ,重命名detail.json名字:chapter_ids中的:titles2-titles3-activity_title.detail.json; 3. 把重命名的文件放到对应的titles1的目录里.