CN110110152B - 思维导图的处理方法、装置、计算机设备和存储介质 - Google Patents
思维导图的处理方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN110110152B CN110110152B CN201810048575.9A CN201810048575A CN110110152B CN 110110152 B CN110110152 B CN 110110152B CN 201810048575 A CN201810048575 A CN 201810048575A CN 110110152 B CN110110152 B CN 110110152B
- Authority
- CN
- China
- Prior art keywords
- node
- nodes
- json
- file
- mind map
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9027—Trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/904—Browsing; Visualisation therefor
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种思维导图的处理方法、装置、计算机设备和存储介质。获取缓存思维导图所形成的树形结构数据;将所述树形结构数据中各节点分别转换为JSON对象,将由相同类型的节点转换得到的JSON对象形成JSON数组,并将所述JSON数组挂载到由所述相同类型的节点的父节点转换得到的JSON对象,得到JSON格式的节点内容文件;根据所述节点内容文件生成思维导图文件。采用本方法能够有效地降低思维导图文件的大小。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种思维导图的处理方法、装置、计算机设备和存储介质。
背景技术
思维导图又称心智导图,是一种能表达发散性思维的有效图形思维工具,运用图文并重的方式将各级主题的关系用相互隶属与相关的层级图表现出来,使主题关键词与图像、颜色等建立记忆链接。
目前思维导图的保存方案中,主要采用XML(Extensible Markup Language,可扩展标记语言)的方式保存思维导图中各节点的信息,如采用XML的方式保存每个节点的信息(包括节点名称、位置和颜色等)和节点之间的相互关系。采用上述方案使用XML方式保存思维导图中各节点的信息,使得存储的思维导图文件较大。
发明内容
基于此,有必要针对存储思维导图时文件较大的问题,提供一种思维导图的处理方法、装置、计算机设备和存储介质。
一种思维导图的处理方法,所述方法包括:
获取缓存思维导图所形成的树形结构数据;
将所述树形结构数据中各节点分别转换为JSON对象,将由相同类型的节点转换得到的JSON对象形成JSON数组,并将所述JSON数组挂载到由所述相同类型的节点的父节点转换得到的JSON对象,得到JSON格式的节点内容文件;
根据所述节点内容文件生成思维导图文件。
在其中一个实施例中,所述根据所述节点内容文件生成思维导图文件,所述方法还包括:在接收到读取指令时,根据所述思维导图文件得到节点内容文件;
将所述节点内容文件中的各JSON对象解析为节点;
根据挂载的JSON数组确定解析出的节点间的关系;
根据所述节点和所述节点间的关系渲染思维导图图像。
在其中一个实施例中,所述根据所述节点和所述节点间的关系渲染思维导图图像,包括:
从解析出的各节点中筛选用于在思维导图图像中呈现的元素节点;
确定所述元素节点的展示位置;
按照所述元素节点的展示位置和所述元素节点间的关系渲染思维导图图像。
在其中一个实施例中,所述确定所述元素节点的展示位置,包括:
获取根据由所述元素节点转换得到的JSON对象的对象属性确定的元素节点属性,从所述元素节点属性中提取所述元素节点的展示位置;或者,
获取根据作为根节点的元素节点转换得到的JSON对象的对象属性确定的根节点属性,从所述根节点属性中提取所述根节点的展示位置,根据所述根节点的展示位置和预设的格式信息生成非根节点的元素节点的展示位置。
在其中一个实施例中,还包括:将与所述树形结构数据对应的属性信息和附加资源信息分别保存为JSON格式的属性信息文件和附加资源信息文件;
所述根据所述节点内容文件生成思维导图文件,包括:
将所述节点内容文件、所述属性信息文件和所述附加资源信息文件进行压缩,得到思维导图文件。
一种思维导图的处理装置,所述装置包括:
获取模块,用于获取缓存思维导图所形成的树形结构数据;
处理模块,用于将所述树形结构数据中各节点分别转换为JSON对象,将由相同类型的节点转换得到的JSON对象形成JSON数组,并将所述JSON数组挂载到由所述相同类型的节点的父节点转换得到的JSON对象,得到JSON格式的节点内容文件;
生成模块,用于根据所述节点内容文件生成思维导图文件。
在其中一个实施例中,所述装置还包括:文件获得模块,用于在接收到读取指令时,根据所述思维导图文件得到节点内容文件;
解析模块,用于将所述节点内容文件中的各JSON对象解析为节点;
挂载模块,用于根据挂载的JSON数组确定解析出的节点间的关系;
渲染模块,用于根据所述节点和所述节点间的关系渲染思维导图图像。
在其中一个实施例中,所述渲染模块还用于从解析出的各节点中筛选用于在思维导图图像中呈现的元素节点;确定所述元素节点的展示位置;按照所述元素节点的展示位置和所述元素节点间的关系渲染思维导图图像。
在其中一个实施例中,所述渲染模块还用于获取根据由所述元素节点转换得到的JSON对象的对象属性确定的元素节点属性,从所述元素节点属性中提取所述元素节点的展示位置;或者,获取根据作为根节点的元素节点转换得到的JSON对象的对象属性确定的根节点属性,从所述根节点属性中提取所述根节点的展示位置,根据所述根节点的展示位置和/或预设的格式信息生成非根节点的元素节点的展示位置。
在其中一个实施例中,所述装置还包括:
保存模块,用于将与所述树形结构数据对应的属性信息和附加资源信息分别保存为JSON格式的属性信息文件和附加资源信息文件;
所述生成模块还用于将所述节点内容文件、所述属性信息文件和所述附加资源信息文件进行压缩,得到思维导图文件。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取缓存思维导图所形成的树形结构数据;
将所述树形结构数据中各节点分别转换为JSON对象,将由相同类型的节点转换得到的JSON对象形成JSON数组,并将所述JSON数组挂载到由所述相同类型的节点的父节点转换得到的JSON对象,得到JSON格式的节点内容文件;
根据所述节点内容文件生成思维导图文件。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取缓存思维导图所形成的树形结构数据;
将所述树形结构数据中各节点分别转换为JSON对象,将由相同类型的节点转换得到的JSON对象形成JSON数组,并将所述JSON数组挂载到由所述相同类型的节点的父节点转换得到的JSON对象,得到JSON格式的节点内容文件;
根据所述节点内容文件生成思维导图文件。
上述思维导图的处理方法、装置、计算机设备和存储介质,通过将树形结构的思维导图中的节点对象化后形成JSON格式的文件,进而形成思维导图文件,避免了复杂的标记语言标签,可以有效降低思维导图文件的大小。而且,将由相同类型的节点转换得到的JSON对象形成JSON数组,节点之间的关系表达更加简洁,从而进一步降低思维导图文件的大小。
附图说明
图1为一个实施例中思维导图的处理方法的流程示意图;
图2为一个实施例中缓存思维导图所形成的树形结构数据的示意图;
图3为一个实施例中解析思维导图文件和渲染思维导图图像的步骤的流程示意图;
图4为一个实施例中在应用程序中展示思维导图图像的示意图;
图5为一个实施例中根据节点和节点间的关系渲染思维导图图像的步骤的流程示意图;
图6为一个实施例中思维导图文件与各组成部分之间关系的示意图;
图7为一个实施例中思维导图的处理装置的结构示意图;
图8为另一个实施例中思维导图的处理装置的结构示意图;
图9为又一个实施例中思维导图的处理装置的结构示意图;
图10为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种思维导图的处理方法,以该方法应用于终端为例进行说明,其中,该终端可以是移动终端或者计算机,移动终端可以包括手机、平板电脑、个人数字助理和穿戴式设备等中的至少一种,所述方法包括以下步骤:
步骤102,获取缓存思维导图所形成的树形结构数据。
其中,思维导图为表达发散性思维的有效图形思维工具,运用图文并重的方式将各级主题的关系用相互隶属与相关的层级图表现出来,使主题关键词与图像、颜色等建立记忆链接。
树形结构数据由思维导图在内存储器中缓存所形成。其中,树形结构数据包括但不限于以下要素:节点、父子关系和节点的层次。其中,1)节点为树形结构数据中的数据元素,最上层的节点为根节点,末端的节点为叶子节点,如图2所示,节点A为根节点,节点E、H~L都是叶子节点。2)父子关系为节点之间的从属关系,如图2所示,节点B为节点F的父节点,节点F即为节点B的子节点,即父节点为某节点的上层节点,子节点为某节点的下层节点。3)节点的层次指的是从根节点到树中某节点所经路径上的分支数,根节点的层次为1,其余节点的层次等于其父节点的层次加1,各节点的层次如图2所示。
具体地,终端在通过终端上运行的思维导图制作软件生成思维导图时,在终端的内存储器中缓存思维导图,形成树形结构数据。终端在完成思维导图的制作保存思维导图时,从内存储器中读取缓存思维导图所形成的树形结构数据。
步骤104,将树形结构数据中各节点分别转换为JSON对象,将由相同类型的节点转换得到的JSON对象形成JSON数组,并将JSON数组挂载到由相同类型的节点的父节点转换得到的JSON对象,得到JSON格式的节点内容文件。
其中,JSON(JavaScript Object Notation,JavaScript对象标记)对象指的是对树形结构数据中的节点进行抽象化,抽象为JSON格式的对象,以便利用JSON格式的对象对树形结构数据中的节点进行程序化设计。
在一个树形结构数据中,当终端对某个层次的节点所转换的JSON对象进行JSON数组转换时,可将归属于同一父节点的节点确定为相同类型,可将归属于不同父节点的节点确定为不同类型。例如,1)当对层次3的节点所转换的JSON对象进行JSON数组转换时,由于节点E和节点F归属于节点C,可将节点E和节点F确定为相同类型。而节点G和节点H归属于节点D,可将节点G、节点H与节点E、节点F确定为不同类型。2)当对层次2的节点所转换的JSON对象进行JSON数组转换时,同理可将节点B、节点C和节点D确定为相同类型的节点。
其中,将JSON数组挂载到由相同类型的节点的父节点转换得到的JSON对象指的是:以复数形式的变量为键,以JSON数组为值保存至由相同类型的节点的父节点转换得到的JSON对象。
具体地,终端在获得树形结构数据时,将树形结构数据中各节点分别转换为JSON对象,以便于通过JSON对象对节点进行相应的处理。终端将由相同类型的节点转换得到的JSON对象保存于同一个JSON数组中,将由不同类型的节点转换得到的JSON对象分别保存于不同的JSON数组中,起到对节点分类的作用。然后,以复数形式的变量为键,以JSON数组为值保存至父节点转换得到的JSON对象中,从而得到JSON格式的节点内容文件。
例如,如图2所示,终端将各节点转换为JSON对象,如分别将节点A~L对象化得到{"id":"001","name":"A"}、……、{"id":"012","name":"L"}。对于节点I和节点J,由于节点I和节点J均属于节点D的子节点,为相同的类型,因此,将节点I和节点J转换的JSON对象保存于同一个JSON数组中,该JSON数组为arrayA=[{"id":"09","name":"I"},{"id":"010","name":"J"}]。然后,以arrayA为值,以children为键保存至节点D转换得到的JSON对象,如父节点D的JSON对象为objectD={{"id":"004","name":"D"},"children":[{"id":"009","name":"I"},{"id":"010","name":"J"}]},进而得到JSON格式的节点内容文件。
在一个实施例中,节点内容文件除了包括JSON对象化的节点和节点之间的关系之外,还可以包括组成思维导图图像中各节点的位置。例如,节点内容文件中包括由节点B转换的JSON对象objectB={"id":"002","name":"B","position":"x,y"},其中,x为坐标系中的横坐标,y为坐标系中的纵坐标。
传统方案中采用XML方式保存思维导图中各节点的信息,而XML由于存在数据安全方面的问题,而本发明实施例中,采用JSON方式保存思维导图中各节点的信息,使得思维导图文件的数据更安全。
步骤106,根据节点内容文件生成思维导图文件。
具体地,终端对JSON格式的节点内容文件进行压缩处理,形成最终的思维导图文件,其中,压缩处理的方式可以是采用ZIP压缩算法、或LZ压缩算法、或哈夫曼编码等的方式。终端也可以不经过压缩,直接将节点内容文件封装以形成思维导图文件。
上述实施例中,终端将树形结构的思维导图中的节点对象化后形成JSON格式的文件,进而形成思维导图文件,避免了复杂的标记语言标签,可以有效降低思维导图文件的大小。而且,将由相同类型的节点转换得到的JSON对象形成JSON数组,节点之间的关系表达更加简洁,从而进一步降低思维导图文件的大小。
如图3所示,在一个实施例中,步骤106之后,该方法还包括以下步骤:
步骤302,在接收到读取指令时,根据思维导图文件得到节点内容文件。
具体地,终端检测用于读取思维导图的读取指令,在检测到读取指令时,将思维导图文件读入内存储器中,采与压缩节点内容文件时采用的压缩算法将思维导图文件进行解压缩,得到JSON格式的节点内容文件。
步骤304,将节点内容文件中的各JSON对象解析为节点。
由于终端在保存思维导图文件时,将树形结构数据中的节点进行对象化处理。因此,终端在展示思维导图文件时,对节点内容文件中的各JSON对象进行解析,得到树形结构中的节点。
例如,以Xmind应用程序为例,终端将将节点内容文件中的各JSON对象解析为节点,其中,解析出来的节点分别为工作簿(workbook)节点、画布(sheet)节点、中心主题(root topic)和分支主题(topic)节点。其中,workbook节点为根节点,workbook节点的子节点包括若干个sheet节点,每个sheet节点的子节点包括一个root topic节点,每个roottopic包括若干子topic节点。需要说明的是,workbook节点表示Xmind应用环境中用来处理思维导图的文件;sheet节点表示工作簿中用于展示思维导图图像的画布;root topic节点、topic节点为构成画布中所展示的思维导图图像的信息,如图4所示。
步骤306,根据挂载的JSON数组确定解析出的节点间的关系。
终端在保存思维导图文件时,将JSON数组挂载到父节点转换得到的JSON对象。因此,终端在展示思维导图的过程中,可以根据挂载的JSON数组确定解析出的节点间的关系。
例如,topicA、topicB和topicC节点所转换的对象保存于数组arrayA中,其中,arrayA=[{"id":"002","name":"topicA"},{"id":"002","name":"topicB"},{"id":"002","name":"topicC"}]。终端根据挂载到object={"id":"001","name":"","children":"arrayA"}中的JSON数组进行解析,得到topicA、topicB、topicC三个节点与root topic节点之间的关系,即topicA、topicB、topicC三个节点为root topic节点的子节点,如图4所示。
步骤308,根据节点和节点间的关系渲染思维导图图像。
当节点和节点间的关系解析出来之后,终端根据节点和节点间的关系对节点内容文件进行渲染,渲染的方法可以是调用图形渲染接口获得OpenGL、或OpenGL ES、或DirectX等库中的渲染方法,通过获得的渲染方法对节点内容文件进行渲染。
在展示思维导图文件之前,终端对workbook节点进行渲染,得到Xmind的工作簿;对sheet节点进行渲染,得到工作簿中的各个画布;对root topic节点和topic节点进行渲染,得到呈现在画布中的思维导图图像,如图4所示。
上述实施例中,终端在读取思维导图文件时,对思维导图文件进行解压缩得到JSON格式的节点内容文件,避免了节点内容文件因使用复杂的标记语言标签而造成解压缩困难和耗时的问题,进而减少了展示思维导图图像的时间。
如图5所示,在一个实施例中,根据节点和节点间的关系渲染思维导图图像的步骤,具体包括以下步骤:
步骤502,从解析出的各节点中筛选用于在思维导图图像中呈现的元素节点。
例如,以Xmind应用程序为例,由于root topic节点和topic节点是构成思维导图图像的元素节点,在画布中展示思维导图图像之前,从解析出的各节点中筛选用于在思维导图图像中呈现的元素节点。
步骤504,确定元素节点的展示位置。
对于元素节点的展示位置,可以通过以下两种方式进行确定:
方式1:终端获取根据由元素节点转换得到的JSON对象的对象属性确定的元素节点属性,从元素节点属性中提取元素节点的展示位置。
例如,假设topic节点的个数为3,由于root topic节点和topic节点是构成显示在画布中的思维导图图像的元素节点,对于root topic节点转换后的JSON对象object={{"id":"001","name":"root topic","position":"x1,y1"},"children":[{"id":"002","name":"topicA","position":"x2,y2"},{"id":"003","name":"topicB","position":"x3,y3"},{"id":"004","name":"topicC","position":"x4,y4"}]},终端从该object中获取root topic、topicA、topicB和topicC节点的JSON对象的元素节点属性,从元素节点属性中提取元素节点的展示位置,其中,root topic、topicA、topicB和topicC节点展示位置分别为(x1,y1)、(x2,y2)、(x3,y3)和(x4,y4)。
方式2:终端获取根据作为根节点的元素节点转换得到的JSON对象的对象属性确定的根节点属性,从根节点属性中提取根节点的展示位置,根据根节点的展示位置和预设的格式信息生成非根节点的元素节点的展示位置。
其中,格式信息可以是预设的水平距离和垂直距离;也可以是根据节点的层次数和各层次的节点个数预设的展示位置,例如,显示在画布中的思维导图图像的节点共有N个层次,那么,可以将画布划分为N个区域,在每个区域内按照节点的个数和该区域的面积计算展示位置。
例如,对于root topic节点转换后的JSON对象object={{"id":"001","name":"root topic","position":"x1,y1"},"children":[{"id":"002","name":"topicA"},{"id":"003","name":"topicB",},{"id":"004","name":"topicC"]},终端从object中获取root topic节点的JSON对象的根节点属性,从根节点属性中提取根节点的展示位置为(x1,y1)。然后,终端根据节点的层次将画布分成上下两个区域,上半部分的区域用于显示roottopic节点,下半部分区域用于显示topicA、topicB和topicC。在下半部分区域中根据节点的个数和该下半部分区域的面积计算出topicA、topicB和topicC的展示位置,从而获得构成思维导图图像的各元素节点的展示位置。
步骤506,按照元素节点的展示位置和元素节点间的关系渲染思维导图图像。
具体地,终端根据元素节点的展示位置和元素节点间的关系确定各元素节点在画布中所呈现的位置,然后对元素节点进行渲染,获得展示在画布中的思维导图图像,如图4所示。
上述实施例中,对于计算能力小的终端,可以根据节点内容文件中保存的各元素节点的展示位置渲染思维导图图像,减少了该终端展示思维导图图像的时间;此外,对于计算能力大的终端,也可以根据根元素节点的展示位置和元素节点间的关系渲染思维导图图像,使得在保存思维导图文件的过程中,不需要保存根节点以外的节点的展示位置,降低了保存时间。
在一个实施例中,步骤106之前,还包括:终端将与树形结构数据对应的属性信息和附加资源信息分别保存为JSON格式的属性信息文件和附加资源信息文件;步骤106具体包括:终端将节点内容文件、属性信息文件和附加资源信息文件进行压缩,得到思维导图文件。
其中,属性信息也可称为元数据信息,包括思维导图的文件版本和作者信息;附加资源信息指的是附加资源哈希表,附加资源哈希表中可以保存多媒体信息的存储地址。
例如,将思维导图的文件版本与作者信息写入metadata.json文件,附加资源哈希表写入manifest.json文件,利用压缩技术将content.json、metadata.json、manifest.json文件压缩打包为.xmind的思维导图文件。其中,content.json为节点内容文件。此外,还可以将图像、音频和视频等多媒体信息之类的附加资源存放在resources文件,并与content.json、metadata.json、manifest.json文件一起压缩打包为.xmind的思维导图文件,如图6所示。
上述实施例中,通过将属性信息和附加资源信息添加入思维导图文件中,当用户在查阅思维导图图像的过程中,可以查阅到属性信息和附加资源信息,有利于提高获取思维导图图像中的信息的效率。
应该理解的是,虽然图1、图3和图5的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1、图3和图5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
如图7所示,在一个实施例中,提供了一种思维导图的处理装置,包括:获取模块701、处理模块702和生成模块703,其中:
获取模块701,用于获取缓存思维导图所形成的树形结构数据;
处理模块702,用于将所述树形结构数据中各节点分别转换为JSON对象,将由相同类型的节点转换得到的JSON对象形成JSON数组,并将所述JSON数组挂载到由所述相同类型的节点的父节点转换得到的JSON对象,得到JSON格式的节点内容文件;
生成模块703,用于根据所述节点内容文件生成思维导图文件。
在上述实施例中,通过将树形结构的思维导图中的节点对象化进行后形成JSON格式的文件,进而形成思维导图文件,避免了复杂的标记语言标签,可以有效降低思维导图文件的大小。而且,将由相同类型的节点转换得到的JSON对象形成JSON数组,节点之间的关系表达更加简洁,从而进一步降低思维导图文件的大小。
图8为另一个实施例中思维导图的处理装置的结构框图,参照图8,该思维导图的处理装置还包括:文件获得模块704、解析模块705、挂载模块706和渲染模块707;其中,
文件获得模块704,用于在接收到读取指令时,根据所述思维导图文件得到节点内容文件;
解析模块705,用于将所述节点内容文件中的各JSON对象解析为节点;
挂载模块706,用于根据挂载的JSON数组确定解析出的节点间的关系;
渲染模块707,用于根据所述节点和所述节点间的关系渲染思维导图图像。
上述实施例中,用户在读取思维导图文件时,对思维导图文件进行解压缩得到JSON格式的节点内容文件,避免了节点内容文件因使用复杂的标记语言标签而造成解压缩困难和耗时的问题,进而减少了展示思维导图图像的时间。
在一个实施例中,渲染模块707还用于从解析出的各节点中筛选用于在思维导图图像中呈现的元素节点;确定所述元素节点的展示位置;按照所述元素节点的展示位置和所述元素节点间的关系渲染思维导图图像。
在一个实施例中,渲染模块707还用于获取根据由所述元素节点转换得到的JSON对象的对象属性确定的元素节点属性,从所述元素节点属性中提取所述元素节点的展示位置;或者,获取根据作为根节点的元素节点转换得到的JSON对象的对象属性确定的根节点属性,从所述根节点属性中提取所述根节点的展示位置,根据所述根节点的展示位置和/或预设的格式信息生成非根节点的元素节点的展示位置。
上述实施例中,对于计算能力小的终端,可以根据节点内容文件中保存的各元素节点的展示位置渲染思维导图图像,减少了该终端展示思维导图图像的时间;此外,对于计算能力大的终端,也可以根据根元素节点的展示位置和元素节点间的关系渲染思维导图图像,使得在保存思维导图文件的过程中,不需要保存根节点以外的节点的展示位置,降低了保存时间。
图9为又一个实施例中思维导图的处理装置的结构框图,参照图9,该思维导图的处理装置还包括:保存模块708;其中,
保存模块708,用于将与所述树形结构数据对应的属性信息和附加资源信息分别保存为JSON格式的属性信息文件和附加资源信息文件;
生成模块703还用于将所述节点内容文件、所述属性信息文件和所述附加资源信息文件进行压缩,得到思维导图文件。
上述实施例中,通过将属性信息和附加资源信息添加入思维导图文件中,当用户在查阅思维导图图像的过程中,可以查阅到属性信息和附加资源信息,有利于提高获取思维导图图像中的信息的效率。
关于思维导图的处理装置的具体限定可以参见上文中对于思维导图的处理方法的限定,在此不再赘述。上述思维导图的处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种思维导图的处理方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,处理器执行计算机程序时实现以下步骤:
获取缓存思维导图所形成的树形结构数据;将所述树形结构数据中各节点分别转换为JSON对象,将由相同类型的节点转换得到的JSON对象形成JSON数组,并将所述JSON数组挂载到由所述相同类型的节点的父节点转换得到的JSON对象,得到JSON格式的节点内容文件;根据所述节点内容文件生成思维导图文件。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
在接收到读取指令时,根据所述思维导图文件得到节点内容文件;将所述节点内容文件中的各JSON对象解析为节点;根据挂载的JSON数组确定解析出的节点间的关系;根据所述节点和所述节点间的关系渲染思维导图图像。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
从解析出的各节点中筛选用于在思维导图图像中呈现的元素节点;确定所述元素节点的展示位置;按照所述元素节点的展示位置和所述元素节点间的关系渲染思维导图图像。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
获取根据由所述元素节点转换得到的JSON对象的对象属性确定的元素节点属性,从所述元素节点属性中提取所述元素节点的展示位置;或者,获取根据作为根节点的元素节点转换得到的JSON对象的对象属性确定的根节点属性,从所述根节点属性中提取所述根节点的展示位置,根据所述根节点的展示位置和预设的格式信息生成非根节点的元素节点的展示位置。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
将与所述树形结构数据对应的属性信息和附加资源信息分别保存为JSON格式的属性信息文件和附加资源信息文件;所述根据所述节点内容文件生成思维导图文件,包括:将所述节点内容文件、所述属性信息文件和所述附加资源信息文件进行压缩,得到思维导图文件。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取缓存思维导图所形成的树形结构数据;将所述树形结构数据中各节点分别转换为JSON对象,将由相同类型的节点转换得到的JSON对象形成JSON数组,并将所述JSON数组挂载到由所述相同类型的节点的父节点转换得到的JSON对象,得到JSON格式的节点内容文件;根据所述节点内容文件生成思维导图文件。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
在接收到读取指令时,根据所述思维导图文件得到节点内容文件;将所述节点内容文件中的各JSON对象解析为节点;根据挂载的JSON数组确定解析出的节点间的关系;根据所述节点和所述节点间的关系渲染思维导图图像。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
从解析出的各节点中筛选用于在思维导图图像中呈现的元素节点;确定所述元素节点的展示位置;按照所述元素节点的展示位置和所述元素节点间的关系渲染思维导图图像。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取根据由所述元素节点转换得到的JSON对象的对象属性确定的元素节点属性,从所述元素节点属性中提取所述元素节点的展示位置;或者,获取根据作为根节点的元素节点转换得到的JSON对象的对象属性确定的根节点属性,从所述根节点属性中提取所述根节点的展示位置,根据所述根节点的展示位置和预设的格式信息生成非根节点的元素节点的展示位置。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
将与所述树形结构数据对应的属性信息和附加资源信息分别保存为JSON格式的属性信息文件和附加资源信息文件;所述根据所述节点内容文件生成思维导图文件,包括:将所述节点内容文件、所述属性信息文件和所述附加资源信息文件进行压缩,得到思维导图文件。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种思维导图的处理方法,所述方法包括:
获取缓存思维导图所形成的,包括节点、父子关系和节点层次的树形结构数据;
将所述树形结构数据中各节点分别转换为JSON对象,将由归属于同一父节点的节点转换得到的JSON对象形成JSON数组;
按照以复数形式的变量为键,以所述JSON数组为值的方式,将所述JSON数组保存至由相同类型的节点的父节点转换得到的JSON对象,得到JSON格式的节点内容文件;所述节点内容文件中包括所述JSON对象和组成所述思维导图的各节点的位置;
根据所述节点内容文件生成思维导图文件;
在接收到读取指令时,根据所述思维导图文件得到节点内容文件;
将所述节点内容文件中的各JSON对象解析为节点;
根据挂载的JSON数组确定解析出的节点间的关系;
根据所述节点和所述节点间的关系渲染思维导图图像。
2.根据权利要求1所述的方法,其特征在于,所述在接收到读取指令时,根据所述思维导图文件得到节点内容文件包括:
在接收到读取指令时,将所述思维导图文件存入内存储器中;
对存储在所述内存储器中的思维导图文件进行解压缩,得到所述节点内容文件。
3.根据权利要求2所述的方法,其特征在于,所述根据所述节点和所述节点间的关系渲染思维导图图像,包括:
从解析出的各节点中筛选用于在思维导图图像中呈现的元素节点;
确定所述元素节点的展示位置;
按照所述元素节点的展示位置和所述元素节点间的关系渲染思维导图图像。
4.根据权利要求3所述的方法,其特征在于,所述确定所述元素节点的展示位置,包括:
获取根据由所述元素节点转换得到的JSON对象的对象属性确定的元素节点属性,从所述元素节点属性中提取所述元素节点的展示位置;或者,
获取根据作为根节点的元素节点转换得到的JSON对象的对象属性确定的根节点属性,从所述根节点属性中提取所述根节点的展示位置,根据所述根节点的展示位置和预设的格式信息生成非根节点的元素节点的展示位置。
5.根据权利要求1所述的方法,其特征在于,所述根据所述节点内容文件生成思维导图文件之前,所述方法还包括:
将与所述树形结构数据对应的属性信息和附加资源信息分别保存为JSON格式的属性信息文件和附加资源信息文件;
所述根据所述节点内容文件生成思维导图文件,包括:
将所述节点内容文件、所述属性信息文件和所述附加资源信息文件进行压缩,得到思维导图文件。
6.一种思维导图的处理装置,其特征在于,所述装置包括:
获取模块,用于获取缓存思维导图所形成的,包括节点、父子关系和节点层次的树形结构数据;
处理模块,用于将所述树形结构数据中各节点分别转换为JSON对象,将由归属于同一父节点的节点转换得到的JSON对象形成JSON数组;
按照以复数形式的变量为键,以所述JSON数组为值的方式,将所述JSON数组保存至由相同类型的节点的父节点转换得到的JSON对象,得到JSON格式的节点内容文件;所述节点内容文件中包括所述JSON对象和组成所述思维导图的各节点的位置;
生成模块,用于根据所述节点内容文件生成思维导图文件;
文件获得模块,用于在接收到读取指令时,根据所述思维导图文件得到节点内容文件;
解析模块,用于将所述节点内容文件中的各JSON对象解析为节点;
挂载模块,用于根据挂载的JSON数组确定解析出的节点间的关系;
渲染模块,用于根据所述节点和所述节点间的关系渲染思维导图图像。
7.根据权利要求6所述的装置,其特征在于,所述文件获得模块,还用于:
在接收到读取指令时,将所述思维导图文件存入内存储器中;
对存储在所述内存储器中的思维导图文件进行解压缩,得到所述节点内容文件。
8.根据权利要求7所述的装置,其特征在于,所述渲染模块还用于从解析出的各节点中筛选用于在思维导图图像中呈现的元素节点;确定所述元素节点的展示位置;按照所述元素节点的展示位置和所述元素节点间的关系渲染思维导图图像。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810048575.9A CN110110152B (zh) | 2018-01-18 | 2018-01-18 | 思维导图的处理方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810048575.9A CN110110152B (zh) | 2018-01-18 | 2018-01-18 | 思维导图的处理方法、装置、计算机设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110110152A CN110110152A (zh) | 2019-08-09 |
CN110110152B true CN110110152B (zh) | 2022-04-01 |
Family
ID=67483470
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810048575.9A Active CN110110152B (zh) | 2018-01-18 | 2018-01-18 | 思维导图的处理方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110110152B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111090591B (zh) * | 2019-12-23 | 2023-05-05 | 贵州医渡云技术有限公司 | 测试方法及装置、电子设备和计算机可读存储介质 |
CN112148845A (zh) * | 2020-02-20 | 2020-12-29 | 浙江大搜车软件技术有限公司 | 机器人的话术资源录入方法及装置、电子设备、存储介质 |
CN111597390A (zh) * | 2020-03-17 | 2020-08-28 | 用友网络科技股份有限公司 | 一种数据格式转换框架 |
CN111985199B (zh) * | 2020-08-13 | 2023-10-27 | 黄石示界创信息科技有限公司 | 基于思维导图的ppt生成方法及系统 |
CN112925928A (zh) * | 2021-03-25 | 2021-06-08 | 深圳市商汤科技有限公司 | 数据处理方法及装置、电子设备及计算机可读存储介质 |
CN114820879B (zh) * | 2022-03-09 | 2023-02-28 | 北京爱思维图科技有限公司 | 一种思维导图构建游戏画板的方法、电子设备及存储介质 |
CN116108235B (zh) * | 2023-02-20 | 2023-11-10 | 上海安博通信息科技有限公司 | 一种树形结构的路径获取方法、装置以及处理设备 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9396455B2 (en) * | 2008-11-10 | 2016-07-19 | Mindjet Llc | System, method, and software application for enabling a user to view and interact with a visual map in an external application |
CN105320719B (zh) * | 2015-01-16 | 2019-02-05 | 焦点科技股份有限公司 | 一种基于项目标签和图形关系的众筹网站项目推荐方法 |
CN104915410B (zh) * | 2015-06-04 | 2018-07-17 | 福建天晴数码有限公司 | 一种思维导图保存及加载方法、保存及加载系统 |
US10262012B2 (en) * | 2015-08-26 | 2019-04-16 | Oracle International Corporation | Techniques related to binary encoding of hierarchical data objects to support efficient path navigation of the hierarchical data objects |
CN106649321A (zh) * | 2015-10-29 | 2017-05-10 | 北京国双科技有限公司 | 思维导图的显示方法及装置 |
CN105653650B (zh) * | 2015-12-28 | 2019-02-26 | 湖北工业大学 | 一种基于d3的研讨系统思维导图及其开发方法 |
CN105957409A (zh) * | 2016-04-25 | 2016-09-21 | 北京葡萄藤信息技术有限公司 | 一种基于任务分配的自动教学方法及平台 |
-
2018
- 2018-01-18 CN CN201810048575.9A patent/CN110110152B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110110152A (zh) | 2019-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110110152B (zh) | 思维导图的处理方法、装置、计算机设备和存储介质 | |
US7975215B2 (en) | Sharing editable ink annotated images with annotation-unaware applications | |
CN106095437B (zh) | 用户界面从右到左rtl的布局方式的实现方法及装置 | |
CN103176986A (zh) | Flash动画数据转换为HTML5数据的方法 | |
CN104850388A (zh) | 网页绘制方法及装置 | |
CN106055294B (zh) | 一种图层合成优化方法和装置 | |
WO2022048141A1 (zh) | 一种图像处理方法及装置、计算机可读存储介质 | |
CN105956133B (zh) | 智能终端上显示文件的方法及装置 | |
CN110675465A (zh) | 用于生成图像的方法和装置 | |
CN110399511A (zh) | 基于Redis的图片缓存方法、设备、存储介质及装置 | |
CN114417064A (zh) | 数据处理方法、装置、计算机设备、存储介质 | |
CN111223155B (zh) | 图像数据处理方法、装置、计算机设备和存储介质 | |
US11481927B2 (en) | Method and apparatus for determining text color | |
CN111552903A (zh) | 基于html模板的页面生成方法、装置和计算机设备 | |
CN116954450A (zh) | 针对前端网页的截图方法以及装置、存储介质、终端 | |
CN112150586A (zh) | 动画处理方法、装置、计算机可读存储介质和计算机设备 | |
CN117093386B (zh) | 页面截图方法、装置、计算机设备和存储介质 | |
CN106293658B (zh) | 一种界面组件生成方法及其设备 | |
CN113127410A (zh) | 一种ppt文件格式转换的方法和系统 | |
CN112650957B (zh) | 图像显示方法、装置、计算机可读存储介质和计算机设备 | |
CN114332895A (zh) | 文本图像合成方法、装置、设备、存储介质和程序产品 | |
CN107146245B (zh) | 图像匹配方法和装置 | |
CN111709338B (zh) | 一种用于表格检测的方法、装置及检测模型的训练方法 | |
CN111597151A (zh) | 文件生成方法、装置、计算机设备和存储介质 | |
CN112015378A (zh) | 骨架屏页面生成方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |