一种XML报文到JSON报文的转换方法及系统技术方案

技术编号:11132815 阅读:190 留言:0更新日期:2015-03-12 03:01
本发明专利技术涉及一种XML报文到JSON报文的转换方法及系统,包括以下步骤:步骤1:获取待转换的XML报文,将XML报文解析成XML对象;步骤2:逐个获取XML对象中每个节点的属性;步骤3:检查当前节点中是否只包含文本内容或空元素,如果是,执行步骤4,否则,执行步骤5;步骤4:将当前节点的属性进行修改,修改完毕,执行步骤6;步骤5:获取下一个节点的属性,执行步骤3;步骤6:将XML对象转换成JSON对象,并将JSON对象转换成JSON报文。本发明专利技术通过开发框架的修改,自动将XML格式和JSON格式进行转换处理,这样对应用开发人员是透明的,复用了以前的程序代码,降低了项目的风险。

【技术实现步骤摘要】
一种XML报文到JSON报文的转换方法及系统
本专利技术涉及一种报文转换方法,特别涉及一种XML报文到JSON报文的转换方法及 系统。
技术介绍
公司在新的项目中准备采用新的技术架构,此技术架构的要求是前台web应用调 用后台服务都必须通过ESB进行服务的调用,这样就要求ESB这层要很高的性能,否则,会 由于ESB这层性能影响所有调用系统的性能,最后导致项目面临高风险,因此,需要想办法 提高ESB的性能。 目前通过ESB进行服务调用的方式是通过web service的方式进行调用,调用 的数据格式是XML格式。通过网上查询了解到目前互联网流行的架构风格方式是采用 RESTful的方式,同时数据格式是JSON格式。通过技术原型的压力测试结果,证明确实采用 RESTful+JSON的方式比web service+XML的方式性能要好。 因此,最后通过ESB调用服务的方式采用RESTful+JSON的方式,RESTful目前有 许多开源框架支持,不在此进行介绍。
技术实现思路
本专利技术所要解决的技术问题是提供一种根据预定的格式将XML报文到JSON报文 的转换方法及系统。 本专利技术解决上述技术问题的技术方案如下:一种XML报文到JSON报文的转换方 法,包括以下步骤: 步骤1 :获取待转换的XML报文,将XML报文解析成XML对象; 步骤2 :逐个获取XML对象中每个节点的属性; 步骤3:检查当前节点中是否只包含文本内容或空元素,如果是,执行步骤4,否 贝IJ,执行步骤5; 步骤4 :将当前节点的属性进行修改,修改完毕,执行步骤6 ; 步骤5 :获取下一个节点的属性,执行步骤3 ; 步骤6 :将XML对象转换成JSON对象,并将JSON对象转换成JSON报文。 本专利技术的有益效果是:本专利技术通过开发框架的修改,自动将XML格式和JSON格 式进行转换处理,这样对应用开发人员是透明的,复用了以前的程序代码,降低了项目的风 险。 在上述技术方案的基础上,本专利技术还可以做如下改进。 进一步,所述步骤4具体包括以下步骤:判断当前节点的属性,如果节点的属性是 字符串类型,将该节点的属性定义为不被解析器解析的文本数据类型,如果节点的属性是 double类型且该节点的值是空元素、或者节点属性位除字符串类型和double之外的任意 类型且节点的值是空元素时,将该节点的属性定义为数字类型。 进一步,所述步骤2中具体为利用Document循环逐个获取XML对象中每个节点的 属性。 进一步,节点的属性包括int、long、string和double。 进一步,一种XML报文到JSON报文的转换系统,包括获取解析模块、第一获取属性 模块、检查模块、修改模块、第二获取属性模块和转换模块; 所述获取解析模块,获取待转换的XML报文,将XML报文解析成XML对象; 所述第一获取属性模块,用于逐个获取XML对象中每个节点的属性; 所述检查模块,用于检查当前节点中是否只包含文本内容或空元素,如果是,执行 修改模块,否则,执行第二获取属性模块; 所述修改模块,用于将当前节点的属性进行修改,修改完毕,执行转换模块; 所述第二获取属性模块,用于获取下一个节点的属性,执行检查模块; 所述转换模块,用于将XML对象转换成JSON对象,并将JSON对象转换成JSON报 文。 进一步,所述修改模块具体用于判断当前节点的属性,如果节点的属性是字符串 类型,将该节点的属性定义为不被解析器解析的文本数据类型,如果节点的属性是double 类型且该节点的值是空元素、或者节点属性位除字符串类型和double之外的任意类型且 节点的值是空元素时,将该节点的属性定义为数字类型。 进一步,所述第一获取属性模块中具体为利用Document循环逐个获取XML对象中 每个节点的属性。 进一步,节点的属性包括int、long、string和double。 【附图说明】 图1为本专利技术方法步骤流程图; 图2为本专利技术系统结构图。 附图中,各标号所代表的部件列表如下: 1、获取解析模块,2、第一获取属性模块,3、检查模块,4、修改模块,5、第二获取属 性模块,6、转换模块。 【具体实施方式】 以下结合附图对本专利技术的原理和特征进行描述,所举实例只用于解释本专利技术,并 非用于限定本专利技术的范围。 如图1所示,为本专利技术方法步骤流程图;图2为本专利技术系统结构图。 实施例1 -种XML报文到JSON报文的转换方法,包括以下步骤: 步骤1 :获取待转换的XML报文,将XML报文解析成XML对象; 步骤2 :逐个获取XML对象中每个节点的属性; 步骤3:检查当前节点中是否只包含文本内容或空元素,如果是,执行步骤4,否 贝IJ,执行步骤5; 步骤4 :将当前节点的属性进行修改,修改完毕,执行步骤6 ; 步骤5 :获取下一个节点的属性,执行步骤3 ; 步骤6 :将XML对象转换成JSON对象,并将JSON对象转换成JSON报文。 所述步骤4具体包括以下步骤:判断当前节点的属性,如果节点的属性是字符串 类型,将该节点的属性定义为不被解析器解析的文本数据类型,如果节点的属性是double 类型且该节点的值是空元素、或者节点属性位除字符串类型和double之外的任意类型且 节点的值是空元素时,将该节点的属性定义为数字类型。 所述步骤2中具体为利用Document循环逐个获取XML对象中每个节点的属性。 节点的属性包括 int、long、string 和 double。 -种XML报文到JSON报文的转换系统,包括获取解析模块1、第一获取属性模块 2、检查模块3、修改模块4、第二获取属性模块5和转换模块6 ; 所述获取解析模块1,获取待转换的XML报文,将XML报文解析成XML对象; 所述第一获取属性模块2,用于逐个获取XML对象中每个节点的属性; 所述检查模块3,用于检查当前节点中是否只包含文本内容或空元素,如果是,执 行修改模块4,否则,执行第二获取属性模块5 ; 所述修改模块4,用于将当前节点的属性进行修改,修改完毕,执行转换模块6 ; 所述第二获取属性模块5,用于获取下一个节点的属性,执行检查模块3 ; [0051 ] 所述转换模块6,用于将XML对象转换成JSON对象,并将JSON对象转换成JSON报 文。 转换模块6所述修改模块4具体用于判断当前节点的属性,如果节点的属性是 字符串类型,将该节点的属性定义为不被解析器解析的文本数据类型,如果节点的属性是 double类型且该节点的值是空元素、或者节点属性位除字符串类型和double之外的任意 类型且节点的值是空元素时,将该节点的属性定义为数字类型。 所述第一获取属性模块2中具体为利用Document循环逐个获取XML对象中每个 节点的属性。 节点的属性包括 int、long、string 和 double。 本专利技术还提供一种JSON报文到XML报文的转换方法,包括以下步骤: 步骤a :将JSON字符串转换生成本文档来自技高网...
一种XML报文到JSON报文的转换方法及系统

【技术保护点】
一种XML报文到JSON报文的转换方法,其特征在于,包括以下步骤:步骤1:获取待转换的XML报文,将XML报文解析成XML对象;步骤2:逐个获取XML对象中每个节点的属性;步骤3:检查当前节点中是否只包含文本内容或空元素,如果是,执行步骤4,否则,执行步骤5;步骤4:将当前节点的属性进行修改,修改完毕,执行步骤6;步骤5:获取下一个节点的属性,执行步骤3;步骤6:将XML对象转换成JSON对象,并将JSON对象转换成JSON报文。

【技术特征摘要】
1. 一种XML报文到JSON报文的转换方法,其特征在于,包括以下步骤: 步骤1 :获取待转换的XML报文,将XML报文解析成XML对象; 步骤2 :逐个获取XML对象中每个节点的属性; 步骤3:检查当前节点中是否只包含文本内容或空元素,如果是,执行步骤4,否则,执 行步骤5 ; 步骤4 :将当前节点的属性进行修改,修改完毕,执行步骤6 ; 步骤5 :获取下一个节点的属性,执行步骤3 ; 步骤6 :将XML对象转换成JS0N对象,并将JS0N对象转换成JS0N报文。2. 根据权利要求1所述的XML报文到JS0N报文的转换方法,其特征在于,所述步骤4 具体包括以下步骤:判断当前节点的属性,如果节点的属性是字符串类型,将该节点的属性 定义为不被解析器解析的文本数据类型,如果节点的属性是double类型且该节点的值是 空元素、或者节点属性位除字符串类型和double之外的任意类型且节点的值是空元素时, 将该节点的属性定义为数字类型。3. 根据权利要求1所述的XML报文到JS0N报文的转换方法,其特征在于:所述步骤2 中具体为利用Document循环逐个获取XML对象中每个节点的属性。4. 根据权利要求1所述的XML报文到JS0N报文的转换方法,其特征在于:节点的属性 包括 int、long、string 和 double。5. -种XML报文到JSON报文的转换系统,其特征在于:包括获取解析模块(1)、第一获 取属性模块(2)、检查模块(3)、...

【专利技术属性】
技术研发人员:袁亮
申请(专利权)人:北京思特奇信息技术股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1