CN104615458B - 一种基于json数据格式模块加载的方法及系统 - Google Patents

一种基于json数据格式模块加载的方法及系统 Download PDF

Info

Publication number
CN104615458B
CN104615458B CN201410851468.1A CN201410851468A CN104615458B CN 104615458 B CN104615458 B CN 104615458B CN 201410851468 A CN201410851468 A CN 201410851468A CN 104615458 B CN104615458 B CN 104615458B
Authority
CN
China
Prior art keywords
module
file
functional module
json data
function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410851468.1A
Other languages
English (en)
Other versions
CN104615458A (zh
Inventor
蔡专锡
李上杰
方振华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujian TQ Digital Co Ltd
Original Assignee
Fujian TQ Digital Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujian TQ Digital Co Ltd filed Critical Fujian TQ Digital Co Ltd
Priority to CN201410851468.1A priority Critical patent/CN104615458B/zh
Publication of CN104615458A publication Critical patent/CN104615458A/zh
Application granted granted Critical
Publication of CN104615458B publication Critical patent/CN104615458B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本发明涉及应用程序处理领域,尤其涉及一种基于json数据格式模块加载的方法及系统。其方法包括:S100、创建json数据格式的功能文件,所述功能文件包括一个以上有序的功能模块,所述功能模块包括第一功能模块;S200、主程序读取所述功能文件,形成文件流;S300、解析步骤S200所得文件流,读取第一功能模块,加载第一功能模块;S400、运行步骤S300所加载的第一功能模块。通过读取功能文件,形成文件流,解析文件流,读取功能模块,并加载和运行功能模块,实现模块动态加载,通过本发明提供的方法及系统,能够灵活的加载命令和对象、自由控制命令的执行顺序,也有利于系统功能的扩展。

Description

一种基于json数据格式模块加载的方法及系统
技术领域
本发明涉及应用程序处理领域,尤其涉及一种基于json数据格式模块加载的方法及系统。
背景技术
现有技术中,动态加载为动态加载脚本并直接运行,这样的动态加载方式不够灵活,受限于脚本语言本身。因为动态加载脚本方式,是一次性把脚本内的命令都执行完成,不能自由的停留在某一命令中,因此,执行命令不够灵活。且脚本里描述的是命令,没有对自定义对象进行描述的功能,不能描述或执行命令和对象相结合的情况。
模块加载方法一般是通过程序内部逻辑调用加载,也就是说是固定的加载方法。比如:老师讲课时,想先让同学进行朗读再做题,就需要用到朗读模块和发题模块,并且设置的顺序是先执行朗读模块后执行发题模块,程序就会先加载朗读模块然后再加载发题模块,但是如果下节课的另一个老师想先发题后朗读,或者先发两道题,再进行朗读。如果用程序内部逻辑进行加载就需要修改程序代码,而且每堂课都很有可能会不一样,那就需要给每堂课开发一款软件,这明显是不现实的,所以需要一种动态加载模块的方式。
发明内容
本发明所要解决的技术问题是:提供一种能够灵活的加载命令和对象、自由控制命令的执行顺序基于json数据格式模块加载的方法及系统。
为了解决上述技术问题,本发明采用的技术方案为:
一种基于json数据格式模块加载的方法,包括以下步骤:
S100、创建json数据格式的功能文件,所述功能文件包括一个以上有序的功能模块,所述功能文件包括第一功能模块;
S200、主程序读取所述功能文件,形成文件流;
S300、解析步骤S200所得文件流,读取第一功能模块,加载第一功能模块;
S400、运行步骤S300所加载的第一功能模块。
本发明采用的另一技术方案为:
一种基于json数据格式模块加载的系统,包括:编辑器、第一读取单元、解析器、第二读取单元、加载单元和运行器;
所述编辑器,用于创建json数据格式的功能文件,所述功能文件包括一个以上有序的功能模块,所述功能模块包括第一功能模块;
所述第一读取单元,用于主程序读取所述功能文件,形成文件流;
所述解析器,用于解析所述文件流;
所述第二读取单元,用于读取第一功能模块;
所述加载单元,用于加载第一功能模块;
所述运行器,用于运行所加载的第一功能模块。
本发明的有益效果在于:通过读取功能文件,形成文件流,解析文件流,读取功能模块,并加载和运行功能模块,实现模块动态加载,通过本发明提供的方法及系统,能够灵活的加载命令和对象、自由控制命令的执行顺序,也有利于系统功能的扩展。
附图说明
图1为本发明具体实施方式的基于json数据格式模块加载的方法的步骤图;
图2为本发明具体实施方式的基于json数据格式模块加载的系统的结构示意图;
标号说明:
10、编辑器;20、第一读取单元;30、解析器;40、第二读取单元;50、加载单元;60、运行器。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
本发明最关键的构思在于:通过读取功能文件,形成文件流,解析文件流,读取功能模块,并加载和运行功能模块,实现模块动态加载。
请参照图1,为本发明具体实施方式的基于json数据格式模块加载的方法的步骤图,具体如下:
一种基于json数据格式模块加载的方法,包括以下步骤:
S100、创建json数据格式的功能文件,所述功能文件包括一个以上有序的功能模块,所述功能文件包括第一功能模块;
S200、主程序读取所述功能文件,形成文件流;
S300、解析步骤S200所得文件流,读取第一功能模块,加载第一功能模块;
S400、运行步骤S300所加载的第一功能模块。
从上述描述可知,本发明的有益效果在于:通过读取功能文件,形成文件流,解析文件流,读取功能模块,并加载和运行功能模块,实现模块动态加载,通过本发明提供的方法,能够灵活的加载命令和对象、自由控制命令的执行顺序,也有利于系统功能的扩展。
进一步的,所述步骤S100还包括:预设一存储单元,用于存储所述功能文件。
由上述描述可知,通过预设一存储单元,将创建的功能文件放置在指定位置,便于主程序读取。
进一步的,所述功能模块为数据、事件或动作。所述文件流为功能文件的二进制代码。
由上述描述可知,所述功能模块为数据、事件或动作,通过动态加载,所呈现的效果不一样,实现动态目的。
进一步的,所述步骤S400具体为:预设一显示界面,运行步骤S300所加载的功能模块,并显示在所述显示界面上。
由上述描述可知,通过预设一显示界面,可用于显示运行结果。
进一步的,方法还包括所述步骤S500具体为:判断是否所有功能模块已运行,若是,结束步骤;若否,返回步骤S300。
进一步的,所述步骤S300的功能模块加载过程为:
S301、主程序创建一模块对象列表,初始化预设模块位置;
S302、主程序读取json数据文件模块位置的json对象,返回json对象的标签下模块名称和模块属性对应的属性值,所述模块名称的属性值为N,所述模块属性的属性值为A;
S303、主程序根据步骤S302所得N和A创建模块对象;
S304、主程序将步骤S303所得模块对象加入到对象列表中,所述对象列表长度加1;
S305、主程序判断所述模块位置的长度是否大于对象列表的长度,如果所述模块位置的长度大于对象列表的长度,则返回到步骤S302,执行步骤S302到步骤S304;如果小于或等于对象列表的长度,则进入步骤S306;
S306、主程序加载步骤S305的模块位置的对象列表。
请参照图2,为本发明具体实施方式的基于json数据格式模块加载的系统的结构示意图,具体如下:
一种基于json数据格式模块加载的系统,包括:编辑器10、第一读取单元20、解析器30、第二读取单元40、加载单元50和运行器60;
所述编辑器10,用于创建json数据格式的功能文件,所述功能文件包括一个以上有序的功能模块,所述功能模块包括第一功能模块;
所述第一读取单元20,用于主程序读取所述功能文件,形成文件流;
所述解析器30,用于解析所述文件流;
所述第二读取单元40,用于读取第一功能模块;
所述加载单元50,用于加载第一功能模块;
所述运行器60,用于运行所加载的第一功能模块。
从上述描述可知,本发明的有益效果在于:通过读取功能文件,形成文件流,解析文件流,读取功能模块,并加载和运行功能模块,实现模块动态加载,通过本发明提供的系统,能够灵活的加载命令和对象、自由控制命令的执行顺序,也有利于系统功能的扩展。
进一步的,系统还包括存储单元,用于存储功能文件。
由上述描述可知,通过预设一存储单元,将创建的功能文件放置在指定位置,便于主程序读取。
进一步的,系统还包括显示单元,用于将运行后的功能模块,显示在所述显示界面上。
由上述描述可知,通过预设一显示界面,可用于显示运行结果。
进一步的,系统还包括判断单元,用于判断是否所有功能模块已运行。
实施例一
步骤1、创建、编辑json数据格式的功能文件,并放置指定位置,所述功能文件包含一系列功能模块,且所述功能模块是有序的;
步骤2、主程序从指定位置读取功能文件,形成文件流;
步骤3、解析文件流,根据自定义格式读取一功能模块;
步骤4、根据主程序的需要,动态加载一功能模块,然后根据主程序的需要动态加载功能模块;
(1)根据标志一个模块一个模块的解析,这样做是为了节约内存,因为模块包含图片,声音等资源;
(2)根据用户行为,顺序或逆序加载功能模块。
功能模块定义:具有相对独立(自包含)功能,有具体的页面显示功能,且不能脱离主程序,必须由主程序进行解析运行,所述功能模块包含数据、事件和动作,本身无执行的权限,需要依赖于主程序。
主程序定义:是处理json数据文件的核心,包含一个解析器和一个运行器,解析器就是将json转化为功能模块且不是将整个文件转化,而是根据用户行为将一个模块一个模块的转化,运行器作用在于执行功能模块;
解析器定义:用于解析json数据流,并转化为功能模块;
运行器定义:用于加载功能模块,并显示到界面上。
步骤4(2):顺序或逆序加载功能模块,包含如下步骤:
步骤401:主程序创建一模块对象列表,初始化预设模块位置;
步骤402:主程序读取json数据文件模块位置的json对象,返回json对象的标签下模块名称和模块属性对应的属性值,所述模块名称的属性值为N,所述模块属性的属性值为A;
步骤403:主程序根据步骤402所得N和A创建模块对象;
步骤404:主程序将步骤403所得模块对象加入到对象列表中,所述对象列表长度加1;
步骤405:主程序判断所述模块位置的长度是否大于对象列表的长度,如果所述模块位置的长度大于对象列表的长度,则返回到步骤402,执行步骤402到步骤404;如果小于或等于对象列表的长度,则进入步骤406;
步骤406:主程序加载步骤405的模块位置的对象列表。
本发明总体的思路为:
通过编辑器,用json的数据格式编辑功能模块列表并生成文件,将文件放入指定目录,主程序动态从指定目录获取文件流,通过解析文件流,生成功能模块列表,根据主程序的需要将模块动态加入主程序界面,成为主程序界面的一部分。
本发明总体的效果为:可以更加灵活的加载命令和对象,且可以自由控制命令的执行顺序,有利于系统功能的扩展,例如当我要改变一个功能,只需要在主程序写一个类,然后编写相应的功能,通过json数据文件就可以使用新的功能,不需要修改系统的任何地方,只需要添加一个类;充分实现了松散耦合。
老师讲课需要让学生进行朗读和做题。首先先创建一个包含两个模块的json文件,并将其存储于SD卡,主程序读取SD卡上的json文件形成文件流。主程序创建一个模块对象列表,初始化位置为1,然后主程序读取json文件的第一个json对象,对象包含了朗读模块的名称和属性,然后将json对象的朗读模块转化为模块对象,加入到模块对象列表,模块对象列表长度变为1,因为模块的初始化位置1等于模块对象列表的长度,所以主程序将朗读模块加载进来,当老师需要进行下一模块的时候,将位置加1变为2,然后读取json文件的第二个json对象并转为模块对象加入模块对象列表,对象列表的长度变为2,因为模块的位置2等于模块对象列表的长度,所以主程序就将做题模块加载进来。
综上所述,本发明提供的一种基于json数据格式模块加载的方法及系统,通过读取功能文件,形成文件流,解析文件流,读取功能模块,并加载和运行功能模块,实现模块动态加载,通过本发明提供的方法及系统,能够灵活的加载命令和对象、自由控制命令的执行顺序,也有利于系统功能的扩展。通过预设一存储单元,将创建的功能文件放置在指定位置,便于主程序读取。所述功能模块为数据、事件或动作,通过动态加载,所呈现的效果不一样,实现动态目的。通过预设一显示界面,可用于显示运行结果。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (9)

1.一种基于json数据格式模块加载的方法,其特征在于,包括以下步骤:
步骤S100、创建json数据格式的功能文件,所述功能文件包括一个以上有序的功能模块,所述功能模块包括第一功能模块;
步骤S200、主程序读取所述功能文件,形成文件流;
步骤S300、解析步骤S200所得文件流,读取第一功能模块,加载第一功能模块;
步骤S400、运行步骤S300所加载的第一功能模块;
其中,
所述步骤S300的功能模块加载过程为:
步骤S301、主程序创建一模块对象列表,初始化预设模块位置;
步骤S302、主程序读取json数据文件模块位置的json对象,返回json对象的标签下模块名称和模块属性对应的属性值,所述模块名称的属性值为N,所述模块属性的属性值为A;
步骤S303、主程序根据步骤S302所得N和A创建模块对象;
步骤S304、主程序将步骤S303所得模块对象加入到对象列表中,所述对象列表长度加1;
步骤S305、主程序判断所述模块位置的长度是否大于对象列表的长度,如果所述模块位置的长度大于对象列表的长度,则返回到步骤S302,执行步骤S302到步骤S304;如果小于或等于对象列表的长度,则进入步骤S306;
步骤S306、主程序加载步骤S305的模块位置的对象列表。
2.根据权利要求1所述的基于json数据格式模块加载的方法,其特征在于,所述步骤S100还包括:预设一存储单元,用于存储所述功能文件。
3.根据权利要求1所述的基于json数据格式模块加载的方法,其特征在于,所述功能模块为数据、事件或动作;所述文件流为功能文件的二进制代码。
4.根据权利要求1所述的基于json数据格式模块加载的方法,其特征在于,所述步骤S400具体为:预设一显示界面,运行步骤S300所加载的功能模块,并显示在所述显示界面上。
5.根据权利要求1所述的基于json数据格式模块加载的方法,其特征在于,方法还包括步骤S500,具体为:判断是否所有功能模块已运行,若是,结束步骤;若否,返回步骤S300。
6.一种基于json数据格式模块加载的系统,其特征在于,包括:编辑器、第一读取单元、解析器、第二读取单元、加载单元和运行器;
所述编辑器,用于创建json数据格式的功能文件,所述功能文件包括一个以上有序的功能模块,所述功能模块包括第一功能模块;
所述第一读取单元,用于主程序读取所述功能文件,形成文件流;
所述解析器,用于解析所述文件流;
所述第二读取单元,用于读取第一功能模块;
所述加载单元,用于加载第一功能模块;
所述运行器,用于运行所加载的第一功能模块。
7.根据权利要求6所述的基于json数据格式模块加载的系统,其特征在于,系统还包括存储单元,用于存储功能文件。
8.根据权利要求6所述的基于json数据格式模块加载的系统,其特征在于,系统还包括显示单元,用于将运行后的功能模块,显示在所述显示单元上。
9.根据权利要求6所述的基于json数据格式模块加载的系统,其特征在于,系统还包括判断单元,用于判断是否所有功能模块已运行。
CN201410851468.1A 2014-12-31 2014-12-31 一种基于json数据格式模块加载的方法及系统 Active CN104615458B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410851468.1A CN104615458B (zh) 2014-12-31 2014-12-31 一种基于json数据格式模块加载的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410851468.1A CN104615458B (zh) 2014-12-31 2014-12-31 一种基于json数据格式模块加载的方法及系统

Publications (2)

Publication Number Publication Date
CN104615458A CN104615458A (zh) 2015-05-13
CN104615458B true CN104615458B (zh) 2017-10-31

Family

ID=53149917

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410851468.1A Active CN104615458B (zh) 2014-12-31 2014-12-31 一种基于json数据格式模块加载的方法及系统

Country Status (1)

Country Link
CN (1) CN104615458B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108810045B (zh) * 2017-04-28 2021-03-16 武汉斗鱼网络科技有限公司 基于Json文件的Flash应用更新方法及系统
CN110442406B (zh) * 2018-05-02 2022-08-12 北京京东乾石科技有限公司 分页控件处理数据的方法及分页控件、电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102323887A (zh) * 2011-06-30 2012-01-18 中兴通讯股份有限公司 基于浏览器引擎的动态加载Widget的方法及移动终端
CN102955694A (zh) * 2011-08-31 2013-03-06 中国电信股份有限公司 基于WebKit 浏览器的客户端实现方法以及客户端

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8776078B2 (en) * 2008-05-20 2014-07-08 International Business Machines Corporation Method for dynamically freeing computer resources

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102323887A (zh) * 2011-06-30 2012-01-18 中兴通讯股份有限公司 基于浏览器引擎的动态加载Widget的方法及移动终端
CN102955694A (zh) * 2011-08-31 2013-03-06 中国电信股份有限公司 基于WebKit 浏览器的客户端实现方法以及客户端

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
电子课本学习地图生成工具设计与实现;齐贵超;《中国优秀硕士学位论文全文数据库社会科学Ⅱ辑》;20131215(第S2期);第37-38页,第41-43页,第46-48页,第52-55页 *

Also Published As

Publication number Publication date
CN104615458A (zh) 2015-05-13

Similar Documents

Publication Publication Date Title
CN103064403B (zh) 一种ecu硬件在环仿真自动化测试方法和系统
CN102207887B (zh) 一种嵌入式操作系统快速移植方法及其装置
CN106469140A (zh) 一种报表生成系统及其方法
US20100138808A1 (en) Embedded system design device and a method thereof using a target independent model
CN101894039A (zh) 一种嵌入式设备驱动程序辅助生成方法及系统
CN103336805A (zh) 一种基于图形化映射关系的定制报表自动生成方法及装置
WO2009114999A1 (zh) 文档处理方法、系统及装置
CN106326194A (zh) 一种应用于文件格式转换场景下的目录生成方法和装置
CN107463126A (zh) 无人机双核控制系统及数据读取与写入方法
CN102591787B (zh) Java卡的数据处理方法及装置
CN105550354A (zh) 一种配置文件管理的方法和系统
CN105743736A (zh) 自动化测试方法及系统
CN104615458B (zh) 一种基于json数据格式模块加载的方法及系统
CN104985939A (zh) 一种激光打标机控制方法和激光打标机
CN103309849B (zh) 一种基于OpenXML的docx文档创建和修改方法
EP1821221A1 (en) Document processing device and document processing method
CN106484412A (zh) 一种基于访问器劫持的前端数据双向绑定实现方法
CN104049947A (zh) 基于动态重命名的矢量寄存器堆的寄存器重新配置
CN107562464A (zh) 一种命令行接口的调用方法、装置及设备
CN110187886A (zh) 一种文档网站生成方法及终端
Pohja COMPARISON OF COMMON XML-BASED WEB USER INTERFACE LANGUAGESCOMPARISON OF COMMON XML-BASED WEB USER INTERFACE LANGUAGES
CN103389893B (zh) 一种配置寄存器读写方法及装置
CN103325360B (zh) 一种字段式lcd显示方法
CN105718434A (zh) 一种自然语言公式编辑方法和系统
CN103530353B (zh) 一种导航用户数据格式的自识别方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant