CN102185901B - 一种客户端报文转换方法 - Google Patents
一种客户端报文转换方法 Download PDFInfo
- Publication number
- CN102185901B CN102185901B CN 201110097412 CN201110097412A CN102185901B CN 102185901 B CN102185901 B CN 102185901B CN 201110097412 CN201110097412 CN 201110097412 CN 201110097412 A CN201110097412 A CN 201110097412A CN 102185901 B CN102185901 B CN 102185901B
- Authority
- CN
- China
- Prior art keywords
- message template
- client
- json
- xml
- template object
- 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
Landscapes
- Information Transfer Between Computers (AREA)
Abstract
本发明提供一种客户端报文转换方法:首先,客户端接收服务器发送来的XML报文模板;其次,客户端将XML报文模板转换为至少一个Json类报文模板;接着,客户端将Json类报文模板实例化为Json类报文模板对象,并将Json类报文模板对象以及该Json类报文模板对象对应的键值保存至哈希表内;然后,客户端将外部输入的业务信息塞值到Json类报文模板对象内;最后,客户端将每个Json类报文模板对象转换为Json字符串发送至服务器。这样就降低了以XML格式进行网络传输时对网络流量的占用,提高了传输速度。实现XML格式和JSON格式间的灵活转换。此外,将部分数据存储和运算的任务转移到客户端来进行,降低了服务器的运算压力。
Description
技术领域
本发明涉及通信领域,尤其涉及一种客户端的报文转换方法。
背景技术
一般情况下,操作者通过客户端办理业务时,客户端接收操作者的请求,处理过程则由后台服务器完成,这对服务器的运算能力要求较高。若想降低服务器的运算压力,则需要客户端来完成部分数据处理任务。
在目前的B/S架构中,客户端(浏览器宿主环境下)在不安装其它插件的前提下,原生支持的公共程序语言是Javascript(以下简称JS),JS中对象以JSON(JavaScript Object Notation)的形式实例化和操作。服务器端Java语言环境下,对象一般以POJO(Plain Old Java Object)形式存在。服务器端和客户端数据的传输格式存在多种,现在比较流行的公共标准格式是以XML的格式来传输数据,从而便于各种环境下以此公共的格式标准来交互数据。但是若客户端接收XML格式数据,并采用XML格式处理相关业务时,则会增加操作者的应用难度,客户端不能直观的向操作者显示业务办理的内容及过程。
此外,现有技术中还存在以下两点缺陷:
1、当前技术不能很好的解决服务器端对象和客户端JS脚本环境下对象的无损转换和传输问题。
2、客户端和服务器端为了遵循公共的标准,不分外部接口暴露还是内部层级之间的调用,全部采用XML数据格式来传递数据,由于XML格式本身冗余元数据描述,造成传输报文文件容量增大,不必要的网络带宽占用。且服务器端的XML数据传输到客户端时,不同种类的浏览器对XML转换成的客户端对象的操作过程,XML对象暴露的API不一致,且操作复杂,没有一个统一,易操作的API来操作这些对象。且不能利用各浏览器原生通用的JSON对象形式来操作,运行时效率也无法得到保证。
XML(Extensible Markup Language)即可扩展标记语言,它与HTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言)。Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成。它基于JavaScript(Standard ECMA-2623rd Edition-December1999)的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C,C++,C#,Java,JavaScript,Perl,Python等)。这些特性使JSON成为理想的数据交换语言。
发明内容
本发明的目的在于提供一种将XML报文转换为JSON报文的方法,方便客户端处理业务。
本发明的技术方案如下,一种客户端报文转换方法,步骤如下,
第一步,客户端接收服务器发送来的XML报文模板;
第二步,所述客户端将所述XML报文模板转换为至少一个Json类报文模板;
第三步,所述客户端将所述Json类报文模板实例化为Json类报文模板对象,并将所述Json类报文模板对象以及该Json类报文模板对象对应的键值保存至哈希表内;
第四步,所述客户端将外部输入的业务信息塞值到所述Json类报文模板对象内,具体步骤如下,
步骤A1,所述客户端接收外部输入的节点信息和业务信息,
步骤A2,所述客户端根据外部输入的节点信息,利用客户端内保存的节点逻辑关系,计算其它Json类报文模板对象的节点信息,
步骤A3,所述客户端调用哈希表,根据键值查找节点相应的Json类报文模板对象,并将接收到的业务信息塞值到所述Json类报文模板对象内;
第五步,所述客户端将每个Json类报文模板对象转换为Json类字符串,发送至所述服务器。
进一步地,所述第二步中,所述客户端先根据所述XML报文模板的节点逻辑关系拆分所述XML报文模板,再通过快速Web应用开发平台将拆分后的XML报文模板转换为Json类报文模板。
进一步地,所述步骤A2中,所述客户端通过递归调用的方式计算其它Json类报文模板对象的节点信息。
进一步地,所述第五步中,所述客户端按照以下步骤将Json类报文模板对象转换为Json字符串,
步骤B1,判断Json类报文模板对象的基本类型:若基本类型为object,则执行步骤B2,否则直接执行步骤B3;
步骤B2,通过javascript的数据变量类型函数判断基本类型为object的Json类报文模板对象的具体类型;
步骤B3,按照不同类型对应的数据转换逻辑将该类型的Json类报文模板对象转换为Json字符串。
本发明的有益效果是:
1.降低了以XML格式进行网络传输时,所造成的冗余数据对网络流量的占用,提高了传输速度,以及B/S系统的实时性,进而提升了用户体验。
2.提供一种XML格式和JSON格式间的灵活转换方法,从而使得系统可以对内部或外部调用时所要求的数据格式进行灵活的序列化转换,从而可以提供对外的多种接口格式,适应当前流行的大部分数据传输协议。
3.将部分数据存储和运算的任务转移到客户端来进行,适应Web2.0时代客户端主机性能不断提升所引起的富客户端运算方式的趋势,降低服务器端运算压力。
附图说明
图1为本发明客户端报文转换方法的流程示意图;
图2为本发明中客户端对Json类报文模板对象塞值的流程示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
一般情况下,操作者通过客户端办理业务时,客户端接收操作者请求,处理过程则由后台服务器完成,这就对服务器的运算能力要求较高,为了降低服务器的运算压力,服务器可将部分数据存储和运算的任务转移到客户端完成,但是如果客户端直接通过XML格式进行业务处理,则增加了操作者的应用难度,不能直观的向操作者显示业务办理的内容及过程。因此,本发明提供一种客户端的报文转换方法,如图1所示,具体步骤如下。
第一步,客户端接收服务器发送来的XML报文模板。即服务器将部分数据存储和数据运算任务对应的XML报文模板发送到客户端,要求客户端完成这部分任务的处理工作。例如,服务器要求客户端录入某一人员的基本身份信息,则服务器将该该录入身份信息的任务对应的XML报文模板发送至客户端。
第二步,客户端将XML报文模板转换为至少一个Json类报文模板。
第三步,客户端将Json类报文模板实例化(在面向对象的编程中,通常把用类创建对象的过程称为实例化)为Json类报文模板对象,并将Json类报文模板对象以及该Json类报文模板对象对应的键值保存至哈希表内。这样就可根据按键的键值直接调用被实例化的Json类报文模板对象。
第四步,客户端将外部输入的业务信息塞值到Json类报文模板对象内。客户端根据服务器转交的任务内容进行塞值,也就说,此时外部操作者可以通过客户端输入待办业务的业务信息,例如,操作者通过客户端输入人员的姓名、性别、证件号等身份信息,客户端就可将这些信息塞到相应节点的Json类报文模板对象内。
第五步,客户端将每个Json类报文模板对象转换为Json字符串,发送至服务器。服务器将接收的Json字符串后,则将其转换为XML格式再进一步处理。这就降低了以XML格式进行网络传输时造成的冗余数据对网络流量的占用,提高了传输速度,以及B/S系统的实时性,进而提升了用户体验。本步骤的具体实现过程如下:
步骤B1,判断Json类报文模板对象的基本类型,其中,基本类型可包括number、object、function、undefined等:若基本类型为object,则执行步骤B2,若为其他基本类型则直接执行步骤B3。
步骤B2,通过javascript的数据变量类型函数判断基本类型为object的Json类报文模板对象的具体类型。即进一步判断Json类报文模板对象的具体类型([object Array]、[object RegExp]等),重新设定该对象的类型为array、regexp、object等类型中的哪一种。
步骤B3,按照不同类型对应的数据转换逻辑将该类型的Json类报文模板对象转换为Json字符串。下面简单介绍2个典型类型的实现方式:
如果具体类型是'object',对该'object'里每个节点进行迭代直到是基本类型时(有可能是各种基本类型),然后调用基本类型的原生转换函数进行串的转换,并塞至一个临时的数组中,最后调用原生的数组转换串的函数,最终转换成字符串。
如果具体类型是'array',通过循环该数组,然后对每个数组进行迭代直到是基本类型时(有可能是各种基本类型),然后调用基本类型的原生转换函数进行串的转换,并塞至一个临时的数组中,最后调用原生的数组转换串的函数,最终转换成字符串。
上述第二步中,客户端先根据XML报文模板的节点逻辑关系拆分XML报文模板,再通过快速Web应用开发平台(SWADP平台,Simple Web ApplicationDevelop Platform)将拆分后的XML报文模板转换为Json类报文模板。
因为每项任务对应的XML报文模板都具有一定的结构,则客户端接收到XML报文模板后,先依据报文结构拆分该XML报文模板至最小报文单元,再将XML格式的最小报文单元转换为Json格式。报文拆分的依据如下:如果某项业务对应的XML报文模板作为整体存在,不存在节点逻辑关系,即不存在父节点与子节点之间的添加问题,则该XML报文模板不需要拆分;如果报文结构中存在某个子节点需要在业务处理流程中单独被实例化和塞值,然后再添加到父级节点中的情况,则需要拆分该报文结构为多个节点。
如图2所示,第四步中,客户端按照以下步骤塞值:
步骤A1,客户端接收外部输入的节点信息和业务信息。因为客户端内保存有各个节点间的逻辑关系,故在本步骤中,操作者最少可以只输入一个节点信息,同时可以输入多个需要塞值到节点的业务信息。
步骤A2,客户端根据操作者输入的节点信息,利用节点间的逻辑关系,计算其它Json类报文模板对象的节点信息。在本步骤中,客户端可以通过递归调用的方式来计算其它Json类报文模板对象的节点信息。
步骤A3,客户端调用哈希表,根据键值查找节点相应的Json类报文模板对象,并将接收到的业务信息塞值到所述Json类报文模板对象内。
在对外部输入的业务信息进行塞值时,在确定每次用哪一个模板的时候,可以直接根据相应的键值,对该模板对象进行实例化,实例化后的对象都是sitechJson对象。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种客户端报文转换方法,其特征在于,
第一步,客户端接收服务器发送来的XML报文模板;
第二步,所述客户端将所述XML报文模板转换为至少一个Json类报文模板;
第三步,所述客户端将所述Json类报文模板实例化为Json类报文模板对象,并将所述Json类报文模板对象以及该Json类报文模板对象对应的键值保存至哈希表内;
第四步,所述客户端将外部输入的业务信息塞值到所述Json类报文模板对象内,具体步骤如下,
步骤A1,所述客户端接收外部输入的节点信息和业务信息,
步骤A2,所述客户端根据外部输入的节点信息,利用客户端内保存的节点逻辑关系,计算其它Json类报文模板对象的节点信息,
步骤A3,所述客户端调用哈希表,根据键值查找节点相应的Json类报文模板对象,并将接收到的业务信息塞值到所述Json类报文模板对象内;
第五步,所述客户端将每个Json类报文模板对象转换为Json字符串,发送至所述服务器。
2.按照权利要求1所述的客户端报文转换方法,其特征在于,
所述第二步中,所述客户端先根据所述XML报文模板的节点逻辑关系拆分所述XML报文模板,再通过快速Web应用开发平台将拆分后的XML报文模板转换为Json类报文模板。
3.按照权利要求1所述的客户端报文转换方法,其特征在于,所述步骤A2中,所述客户端通过递归调用的方式计算其它Json类报文模板对象的节点信息。
4.按照权利要求1所述的客户端报文转换方法,其特征在于,
所述第五步中,所述客户端按照以下步骤将Json类报文模板对象转换为Json字符串,
步骤B1,判断Json类报文模板对象的基本类型:若基本类型为object,则执行步骤B2,否则直接执行步骤B3;
步骤B2,通过javascript的数据变量类型函数判断基本类型为object的Json类报文模板对象的具体类型;
步骤B3,按照不同类型对应的数据转换逻辑将该类型的Json类报文模板对象转换为Json字符串。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110097412 CN102185901B (zh) | 2011-04-19 | 2011-04-19 | 一种客户端报文转换方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201110097412 CN102185901B (zh) | 2011-04-19 | 2011-04-19 | 一种客户端报文转换方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102185901A CN102185901A (zh) | 2011-09-14 |
CN102185901B true CN102185901B (zh) | 2013-06-26 |
Family
ID=44571971
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201110097412 Active CN102185901B (zh) | 2011-04-19 | 2011-04-19 | 一种客户端报文转换方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102185901B (zh) |
Families Citing this family (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102394874B (zh) * | 2011-10-26 | 2014-04-16 | 深圳天源迪科信息技术股份有限公司 | Tuxedo数据协议转换方法 |
CN102594833B (zh) * | 2012-03-09 | 2016-01-06 | 北京思特奇信息技术股份有限公司 | 一种通信协议适配方法和系统 |
CN102624894B (zh) * | 2012-03-09 | 2014-10-22 | 北京思特奇信息技术股份有限公司 | 一种报文组装与解析的方法和系统 |
CN102624895A (zh) * | 2012-03-09 | 2012-08-01 | 亿赞普(北京)科技有限公司 | 网络业务请求的处理方法及系统 |
CN103389991A (zh) * | 2012-05-09 | 2013-11-13 | 阿里巴巴集团控股有限公司 | 数据交互的方法及装置以及数据转换的方法及装置 |
CN104580127B (zh) * | 2013-10-29 | 2019-07-02 | 腾讯科技(北京)有限公司 | 业务处理方法、服务器及客户端 |
CN105793842B (zh) * | 2013-12-31 | 2019-10-18 | 北京新媒传信科技有限公司 | 序列化消息之间的转换方法和装置 |
CN104410667B (zh) * | 2014-10-31 | 2017-12-12 | 北京思特奇信息技术股份有限公司 | 一种xml报文到json报文的转换方法及系统 |
CN104391826A (zh) * | 2014-10-31 | 2015-03-04 | 北京思特奇信息技术股份有限公司 | 一种数据格式转换方法及数据格式转换器 |
CN105282228B (zh) * | 2015-09-11 | 2019-01-25 | 福建天晴数码有限公司 | 极速下载文件的方法及系统 |
CN105117379A (zh) * | 2015-09-11 | 2015-12-02 | 广州华多网络科技有限公司 | 自动转换程序文本的方法及装置 |
CN105681333A (zh) * | 2016-02-24 | 2016-06-15 | 携程计算机技术(上海)有限公司 | 基于二进制的网络数据的传输方法及系统 |
CN107436872A (zh) * | 2016-05-25 | 2017-12-05 | 阿里巴巴集团控股有限公司 | 一种异构数据的处理方法及装置 |
CN107807926A (zh) * | 2016-09-08 | 2018-03-16 | 阿特斯阳光电力集团有限公司 | 光伏监控数据的传输方法和装置 |
CN107870765B (zh) * | 2016-09-26 | 2021-08-31 | 平安科技(深圳)有限公司 | 报文拼接方法及终端 |
CN106850341A (zh) * | 2017-01-17 | 2017-06-13 | 盛科网络(苏州)有限公司 | 用于交换机芯片仿真性能测试的自动化软件组包方法 |
KR102304309B1 (ko) * | 2017-02-02 | 2021-09-23 | 삼성전자주식회사 | 전자 장치에게 센싱 데이터를 제공하는 시스템 및 방법 |
CN109117207B (zh) * | 2017-06-21 | 2021-11-23 | 深圳联友科技有限公司 | 一种业务流程模型的数据处理方法 |
CN109358845B (zh) * | 2017-12-27 | 2021-11-09 | 深圳Tcl新技术有限公司 | 基于xmpp协议编写js代码的方法、工具及存储介质 |
CN108628634A (zh) * | 2018-05-09 | 2018-10-09 | 平安普惠企业管理有限公司 | 报文配置方法、装置、计算机设备以及存储介质 |
CN109032724B (zh) * | 2018-06-29 | 2022-06-24 | 武汉斗鱼网络科技有限公司 | 一种自定义弹幕消息的处理方法、装置、终端和存储介质 |
CN109144495A (zh) * | 2018-08-16 | 2019-01-04 | 北京中科梧桐网络科技有限公司 | 一种JavaScript多格式数据处理模型 |
CN110287724B (zh) * | 2019-05-23 | 2021-06-04 | 顺丰科技有限公司 | 数据存储及验证方法和装置 |
CN110457527B (zh) * | 2019-08-16 | 2023-02-28 | 安徽航天信息有限公司 | 一种xml报文比对方法及系统 |
CN111614757A (zh) * | 2020-05-20 | 2020-09-01 | 中国建设银行股份有限公司 | 客户端与服务器的报文交互方法、装置、设备及介质 |
CN115643320A (zh) * | 2022-09-08 | 2023-01-24 | 中科云谷科技有限公司 | 数据处理方法、系统、存储介质及处理器 |
CN117454846B (zh) * | 2023-12-25 | 2024-03-26 | 广州睿帆科技有限公司 | 一种xsd文件转换为json文件的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8990289B2 (en) * | 2009-02-27 | 2015-03-24 | Oracle America, Inc. | Server based framework for improving Ajax performance |
-
2011
- 2011-04-19 CN CN 201110097412 patent/CN102185901B/zh active Active
Non-Patent Citations (6)
Title |
---|
X3D文件转换为JSON 的方法;程小东等;《池州学院学报》;20090630;第23卷(第3期);第29-30页 * |
利用JSON进行网站客户端与服务器数据交互;王魁生等;《软件导刊》;20100331;第9卷(第3期);第147-149页 * |
基于JSON的地理信息数据交换方法研究;韩敏等;《测绘科学》;20100131;第35卷(第1期);第159-161页 * |
王魁生等.利用JSON进行网站客户端与服务器数据交互.《软件导刊》.2010,第9卷(第3期),第147-149页. |
程小东等.X3D文件转换为JSON 的方法.《池州学院学报》.2009,第23卷(第3期),第29-30页. |
韩敏等.基于JSON的地理信息数据交换方法研究.《测绘科学》.2010,第35卷(第1期),第159-161页. |
Also Published As
Publication number | Publication date |
---|---|
CN102185901A (zh) | 2011-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102185901B (zh) | 一种客户端报文转换方法 | |
CN109902274B (zh) | 一种将json字符串转化为thrift二进制流的方法及系统 | |
CN102393857B (zh) | 一种用网页进行本地调用的方法和系统 | |
CN111625738B (zh) | App目标页面的唤起方法、装置、设备和存储介质 | |
US11520825B2 (en) | Method and system for converting one type of data schema to another type of data schema | |
US20160197779A1 (en) | Information processing device and system design support method | |
CN108038207A (zh) | 一种日志数据处理系统、方法和服务器 | |
CN104391826A (zh) | 一种数据格式转换方法及数据格式转换器 | |
CN101341724A (zh) | 用于web服务通信的历史驱动优化的系统和方法 | |
CN103534988A (zh) | 消息发布与订阅的方法及装置 | |
CN102362261A (zh) | 通过网络浏览器输入内容至应用程序 | |
CN104881285A (zh) | 基于本体的代码片段标注与重用系统 | |
CN112507005B (zh) | 一种处理报文的方法和装置 | |
CN107992767A (zh) | 一种基于多云平台的权限控制方法 | |
CN104010031A (zh) | 一种改善Web浏览器应用效率的分布式协同方法 | |
US20030158894A1 (en) | Multiterminal publishing system and corresponding method for using same | |
CN105827671A (zh) | 分布式使用、集中管理的系统平台以及门户服务器 | |
CN102043836A (zh) | 数据适配装置和方法 | |
CN114900379A (zh) | 一种消息通知方法、装置、电子设备及存储介质 | |
CN114489622A (zh) | 静态资源管理方法、Node.js应用、电子设备和存储介质 | |
EP2979173B1 (en) | Object life cycle management in a publish-subscribe environment | |
WO2023208132A1 (zh) | Api转换系统及其访问请求处理方法、电子设备及介质 | |
CN116346777A (zh) | 一种字典树域名匹配方法、装置、设备及存储介质 | |
Mangler et al. | On the origin of services using riddl for description, evolution and composition of restful services | |
US20110055279A1 (en) | Application server, object management method, and object management program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent for invention or patent application | ||
CB02 | Change of applicant information |
Address after: 100085 Haidian District, Zhongguancun, South Street, No. 6,, building information, floor, No. 16 Applicant after: SI-TECH Information Technology Ltd. Address before: 100085, Beijing, Haidian District on the nine Street 9 digital science and Technology Plaza, two floor Applicant before: Beijing Digital China SI-TECH Information Technology Co., Ltd. |
|
COR | Change of bibliographic data |
Free format text: CORRECT: APPLICANT; FROM: BEIJING DIGITAL CHINA SI-TECH INFORMATION TECHNOLOGY LTD. TO: BEIJING SI-TECH INFORMATION TECHNOLOGY LTD. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |