一种JSON、XML格式数据智能转换为传统数据表格式的算法的制作方法

文档序号:25022731发布日期:2021-05-11 16:47阅读:92来源:国知局
本发明涉及互联网行业数据交互格式
技术领域
:,具体为一种json、xml格式数据智能转换为传统数据表格式的算法。
背景技术
::1998年2月10日,w3c(worldwidewebconsortium,万维网联盟)公布xml1.0标准;json(javascriptobjectnotation)是douglascrockford在2001年开始推广使用的数据格式。在2005年-2006年正式成为主流的数据格式。目前json已经成为互联网行业数据交互格式的事实标准。xml是html的增强实现,json更加强悍,就如它的名称为:js对象简谱,它能描述几乎所有的javascript对象。然而它们均不提供向后兼容,没有xml到html的逆向转换定义;json也只能转换成js对象。但现实社会中依然存在大量使用一维、二维数据表数据格式的场景,尤其是某些传统的行业如银行、教育、传统传媒、政府部门等等。由于xml、json均是强格式化的标记语言格式,针对特定的数据通过编程或通过office内置宏脚本实现向传统数据表格式转换并不复杂;但目前并不存在通用的、全能的json或xml格式数据转化为传统数据表格式的算法。比如像某电视台需要将股票行情数据、天气预报数据、疫情防控数据等json格式的互联网数据转换为一维表并生成游走字幕,而当前的做法只能是为股票行情数据、天气预报数据、疫情防控数据专门编写转换程序,不能用一种算法解决问题。技术实现要素:本发明的目的在于提供一种json、xml格式数据智能转换为传统数据表格式的算法,旨在解决现有技术中不存在通用的、全能的json或xml格式数据转化为传统数据表格式的算法等问题。为实现上述目的,本发明提供如下技术方案:一种json、xml格式数据智能转换为传统数据表格式的算法,包括以下步骤:步骤s1、数据解析,在对解析json格式数据时对数据节点名称进行了父节点名称的继承,得到同一纬度唯一的节点名称构成的数据树或抽象键值对,用于确保数据树的平面化且确保数据树有唯一的数据索引,得到抽象键值对;步骤s2、数据提取,对json格式数据经数据解析后得到的抽象数据树进行表定义,其中,当用户未提供表定义数据时,提取所有数据表并筛选出包含数据量最大的数据表,同时生成数据表定义以及生成可选的其它数据表的定义键名称,用于对数据树中包含的多个传统的一维或二维表数据进行表数据多对一或多对多的数据歧义消除;步骤s3、扩展,对提取后的表数据进行多列组合排序实用算法、数据组合实用算法以及数据宏替换实用算法的比对,用于判断提取后的表数据与所述同一纬度唯一的节点名称构成的数据树中的数据一致性,最后输出返回结果。作为对本发明一种json、xml格式数据智能转换为传统数据表格式的算法的改进,基于步骤s1,在对解析json格式数据时对数据节点名称进行了父节点名称的继承时,需要通过递归函数对jsonobject及jsonarray进行解析,直至递归解析为基本数据,以用于对所述数据树中存在不够规范的json数据进行自动生成并插入。作为对本发明一种json、xml格式数据智能转换为传统数据表格式的算法的改进,基于步骤s2,对json格式数据经数据解析后得到的抽象数据树进行表定义的具体实施方式为:对所接收解析为继承父节点名称的数据树,进行数据表定义传入的判断,其中,若进行数据表定义传入的判断时,将数据表生成为datatable,用于进行处理数据表列定义、拼接以及数据宏的替换;若不进行数据表定义传入的判断时,首先将数据表生成为数据表定义,再将所述数据表定义生成为数据列定义,最后生成为datatable,用于进行处理数据表列定义、拼接以及数据宏替换;对所述生成的datatable,进行组合排序。作为对本发明一种json、xml格式数据智能转换为传统数据表格式的算法的改进,基于步骤s3,表数据与所述同一纬度唯一的节点名称构成的数据树中的数据一致性的判断方式为:所述提取后的表数据与代入的上次解析结果进行比对,若存在比对结果,则生成数据变更信息,输出返回结果。与现有技术相比,本发明的有益效果如下:本发明实现通过通用的、全能的json或xml格式数据转化为传统数据表格式的算法,从而具备适用范围广泛,实用性强的优点,与此同时,通过使用c#语言实现了现有技术中算法实例。附图说明图1为本发明一种实施例中整体算法流程示意图;图2为本发明一种实施例中系统自动根据数据源自动生成用户数据状况的应用场景示意图一;图3为本发明一种实施例中用户施加列定义后的用户数据的应用场景示意图二;图4为本发明一种实施例中用户数据排序后的应用场景示意图三。具体实施方式下面结合附图和实施例对本发明的技术方案做进一步的详细说明。如图1-4所示,作为本发明的一实施例,一种json、xml格式数据智能转换为传统数据表格式的算法,包括以下步骤:步骤s1、数据解析,区别于传统一维或二维数据表标记数据位置的由行序号及列序号构成,在对解析json格式数据或xml格式数据时对数据节点名称进行了父节点名称的继承,解析得到同一纬度唯一的节点名称构成的数据树,用于确保数据树的平面化且确保数据树有唯一的数据索引,由于标准意义上的json格式数据解析的结果应该是javaobject,而本发明需要得到的是传统数据,因此数据解析完成后,得到抽象键值对;步骤s2、数据提取,对json格式数据经数据解析后得到的抽象数据树进行表定义,其中,当用户未提供表定义数据时,提取所有数据表并筛选出包含数据量最大的数据表,同时生成数据表定义以及生成可选的其它数据表的定义键名称,其它数据表的定义键名称供用户自动以数据使用,用于对数据树中包含的多个传统的一维或二维表数据进行表数据多对一或多对多的数据歧义消除;步骤s3、扩展,对提取后的表数据进行多列组合排序实用算法、数据组合实用算法以及数据宏替换实用算法的比对,用于判断提取后的表数据与同一纬度唯一的节点名称构成的数据树中的数据一致性,最后输出返回结果。在本发明的一实施例中,基于步骤s1,在对解析json格式数据时对数据节点名称进行了父节点名称的继承时,需要通过递归函数对jsonobject及jsonarray进行解析,直至递归解析为基本数据,以用于对数据树中存在不够规范的json数据进行自动生成并插入。在本发明的一实施例中,基于步骤s2,对json格式数据经数据解析后得到的抽象数据树进行表定义的具体实施方式为:对所接收解析为继承父节点名称的数据树,进行数据表定义传入的判断,其中,若进行数据表定义传入的判断时,将数据表生成为datatable,用于进行处理数据表列定义、拼接以及数据宏的替换;若不进行数据表定义传入的判断时,首先将数据表生成为数据表定义,再将数据表定义生成为数据列定义,最后生成为datatable,用于进行处理数据表列定义、拼接以及数据宏替换;对生成的datatable,进行组合排序。在本发明的一实施例中,基于步骤s3,表数据与同一纬度唯一的节点名称构成的数据树中的数据一致性的判断方式为:提取后的表数据与代入的上次解析结果进行比对,若存在比对结果,则生成数据变更信息,输出返回结果,本发明实现通过通用的、全能的json或xml格式数据转化为传统数据表格式的算法,从而具备适用范围广泛,实用性强的优点,与此同时,通过使用c#语言实现了现有技术中算法实例。以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应含在本发明的保护范围之内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1