专利名称:基于json数据协议的客运信息通信方法及系统的制作方法
技术领域:
本发明涉及网络通信技术,尤其涉及一种基于JSON数据协议的客运信息通信方法及系统。
背景技术:
随着网络通信技术的发展,在企业应用环境中,一般通过客户端与服务器端交换数据,及系统与系统之间交换数据来实现通信。就现有技术而言,在铁路票务系统及其他系统中,一般通过Socket协议与外部系统进行数据交换,客户端与服务器端基本上采用自定义报文格式(定长或分隔符)来交换数据。但是,由于自定义报文格式缺乏统一标准,其随意性较大,相应的通用性和灵活性较低。随着近年来扩展标记语言(ExtensibIeMarkup Language,以下简称XML)技术的发展, 现有的系统一般采用标准的XML作为相应的具体应用的数据交换标准,但XML数据格式的数据包相对较大,其包含了大量重复标记内容,相应对通信网络带宽有较高要求。因此,如何提高铁路票务系统的通信效率,并提高铁路票务系统的通用性和灵活性就成为亟待解决的问题。
发明内容
本发明提供一种基于JSON数据协议的客运信息通信方法及系统。本发明提供一种基于JSON数据协议的客运信息通信方法,包括接收客运信息发送请求,所述客运信息发送请求包含需要发送的目标数据;根据所述客运信息发送请求调用JSON数据协议;根据所述JSON数据协议对所述目标数据进行封装,生成封装数据;根据所述客运信息发送请求向接收方发送所述封装数据。本发明提供一种基于JSON数据协议的客运信息通信系统,包括客运信息发送请求接收模块,用于接收客运信息发送请求,所述客运信息发送请求包含需要发送的目标数据;JSON数据协议调用模块,用于根据所述客运信息发送请求调用JSON数据协议;数据封装模块,用于根据所述JSON数据协议对所述目标数据进行封装,生成封装数据;封装数据发送模块,用于根据所述客运信息发送请求向接收方发送所述封装数据。本发明的基于JSON数据协议的客运信息通信方法及系统可以使票务系统的各个客户端和票务系统间简单且高效地交换客运信息,可以极大地提高票务系统的通用性和灵活性,从而使票务系统能更便捷且高效地为旅客服务,相应提高旅客购票的效率和满意度。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本发明基于JSON数据协议的客运信息通信方法实施例一的结构图;图2为本发明基于JSON数据协议的客运信息通信系统实施例一的结构图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图1为本发明基于JSON数据协议的客运信息通信方法实施例一的结构图,如图1 所示,本实施例的基于JSON数据协议的客运信息通信方法可以包括以下步骤步骤101、接收客运信息发送请求,客运信息发送请求包含需要发送的目标数据。举例来说,本实施例的基于JSON数据协议的客运信息通信方法可以应用于票务系统中,以车站的票务系统为例,配置于各个车站的票务系统一般有多个客户端,车站的票务系统一方面通过这些客户端来为旅客提供与该车站有关的各次列车的票务信息,另一方面配置于车站的售票窗口的客户端还需要根据票务信息为旅客提供售票等服务。当车站的票务系统的某一客户端需要向票务系统的中心服务器发送客运信息时,首先由本车站的票务系统的负责接收和发送客运信息的客户端接收客运信息发送请求,该客运信息发送请求包含需要发送的目标数据,其中目标数据中包含有相应的客运信息,例如车次、 站名、到站和离站时间等相关信息。这样本车站的票务系统的负责接收和发送客运信息的客户端就可以获取客运信息发送请求所包含的需要发送的目标数据,从而可以执行后续步骤。步骤102、根据客运信息发送请求调用JSON(JavaScript Object Notation,以下简称JS0N)数据协议。举例来说,JSON数据协议是一种轻量级的易于阅读和编写,且易于通过计算机进行解析及生成处理的数据交换格式。其为JavaScript ProgrammingLanguage, Standard ECMA-262 3rd Edition-December 1999标准的一个子集。JSON数据协议采用完全独立于计算机语言的文本格式,但也使用了类似于C语言(包括C,C++, C#, Java, JavaScript, Perl, Python等)家族的编写规则。这些特性使JSON数据协议成为理想的数据交换语言。本实施例为了更有效地传输客运信息,车站的票务系统的负责接收和发送客运信息的客户端在接收到客运信息发送请求后,根据该客运信息发送请求调用JSON数据协议。优选的,JSON数据协议具体可以包括JSON对象结构映射为Map结构,JSON数组结构映射为列表结构。举例来说,本发明在现有JSON数据协议基础上,对JSON数据协议进行进一步的简化,从而降低数据包大小,使网络通讯效率提高,并增强数据交换的便捷性和灵活性。本实施例开创性地对JSON数据协议进行封装,将其映射为计算机系统开发人员经常使用的Map和列表(List)结构的数据结构。其具体通过将JSON对象结构映射为Map结构,JSON数组 (Array)结构映射为列表结构。本实施例通过对JSON数据协议的映射,可以相应降低票务系统的与票务信息相对应的数据与Map和列表结构的转换成本,从而有效地提高票务系统的运行性能。在JSON对象可直接映射为C语言Map结构的键值对的情况下,当车站的票务系统的客户端发送的客运信息发送请求到达服务器端时,服务器端通过相应的JSON解析器,将文本内容直接转换为Map结构,从而使后续的数据操作过程与标准的Map结构的数据操作过程一致。对于基于C语言开发的票务系统来说,就可以方便地实现其客户端与服务端进行数据交换,同时,也简化票务系统的各层之间的数据交换。由于C语言是非面向对象语言,其复杂数据结构一般都通过结构体和数组形式表示,由于结构体缺乏灵活性和扩展性,且基于不同语言的系统间交换数据也很困难,而JSON数据协议本质是文本,非常适合系统之间交换数据,可以支持当前计算机系统开发人员所常用的大部分计算机开发语言。就JSON对象结构来说,对象是一个无序的“ ‘名称/值’对”的集合。一个对象以 “{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“”(冒号);“ ‘名称/ 值’对”之间使用“,”(逗号)分隔。而Map结构也是一个无序的“ ‘名称/值’对”集合,这样JSON对象结构可直接映射为Map结构。由于Map结构可提供非常简单的操作函数,如 map_get, map_put等函数,从而易于相应数据操作的进行。就JSON数组结构来说,其本质为数组(Array),是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。而列表结构是一个动态链表结构,动态链表结构也是有序集合,其通过相应的索引访问数据项。进一步优选的,JSON数据协议具体可以包括请求协议和响应协议。请求协议包含请求协议头以及请求入参包,请求协议头以及请求入参包为JSON 对象结构;响应协议包含响应协议头,用于响应请求协议头,根据请求协议头描述相关元数据,及认证会话信息;返回协议包,用于根据请求入参包返回相应内容;服务执行标识,用于标识响应状态;消息包,消息包中包含目标数据;以及报错包,其中,返回协议包为 JSON数组结构,响应协议头、服务执行标识、消息包和报错包为JSON对象结构。举例来说,根据应用场景,JSON数据协议具体可以分为请求协议以及响应协议两部分。其中,请求协议是一种JSON对象结构的集合,其由两部分构成,分别是请求协议头 (head)以及请求入参包(param),每部分都是一个JSON对象结构。进一步优选的,请求协议头可以包含服务名、会话ID、站代码和局代码。请求协议头可以包含如表1所示的客运信息发送请求所需要调用的服务名,会话 ID,站代码和局代码,以便于票务系统进行后续的数据封装等操作。表1请求协议头格式
权利要求
1.一种基于JSON数据协议的客运信息通信方法,其特征在于,包括 接收客运信息发送请求,所述客运信息发送请求包含需要发送的目标数据; 根据所述客运信息发送请求调用JSON数据协议;根据所述JSON数据协议对所述目标数据进行封装,生成封装数据; 根据所述客运信息发送请求向接收方发送所述封装数据。
2.根据权利要求1所述的方法,其特征在于,所述JSON数据协议具体包括JSON对象结构映射为Map结构,JSON数组结构映射为列表结构。
3.根据权利要求2所述的方法,其特征在于,所述JSON数据协议具体包括请求协议和响应协议,所述请求协议包含请求协议头以及请求入参包,所述请求协议头以及所述请求入参包为所述JSON对象结构; 所述响应协议包含响应协议头,用于响应所述请求协议头,根据所述请求协议头描述相关元数据,及认证会话{曰息;返回协议包,用于根据所述请求入参包返回相应内容; 服务执行标识,用于标识响应状态; 消息包,所述消息包中包含目标数据; 以及报错包,其中,所述返回协议包为所述JSON数组结构,所述响应协议头、服务执行标识、消息包和报错包为所述JSON对象结构。
4.根据权利要求3所述的方法,其特征在于,所述请求协议头包含服务名、会话ID、站代码和局代码。
5.根据权利要求3所述的方法,其特征在于,所述请求入参包的内容包括单个属性、 对象和所述JSON数组结构的数组中的至少一种数据。
6.根据权利要求3至5中任一权利要求所述的方法,其特征在于,若所述服务执行标识的状态为错误时,所述报错包以报错数组的形式返回错误信息列表,所述报错数组为所述 JSON数组结构。
7.一种基于JSON数据协议的客运信息通信系统,其特征在于,包括客运信息发送请求接收模块,用于接收客运信息发送请求,所述客运信息发送请求包含需要发送的目标数据;JSON数据协议调用模块,用于根据所述客运信息发送请求调用JSON数据协议; 数据封装模块,用于根据所述JSON数据协议对所述目标数据进行封装,生成封装数据;封装数据发送模块,用于根据所述客运信息发送请求向接收方发送所述封装数据。
全文摘要
本发明提供一种基于JSON数据协议的客运信息通信方法及系统,其中,基于JSON数据协议的客运信息通信方法,包括接收客运信息发送请求,客运信息发送请求包含需要发送的目标数据;根据客运信息发送请求调用JSON数据协议;根据JSON数据协议对目标数据进行封装,生成封装数据;根据客运信息发送请求向接收方发送封装数据。本发明的基于JSON数据协议的客运信息通信方法及系统可以使票务系统的各个客户端和票务系统间简单且便捷地交换客运信息,可以极大地提高票务系统的通用性和灵活性,从而使票务系统能更便捷且高效地为旅客服务,相应提高旅客购票的便捷性和满意度。
文档编号H04L29/08GK102158482SQ201110058439
公开日2011年8月17日 申请日期2011年3月10日 优先权日2011年3月10日
发明者李吉生, 李良文, 王云, 王永峰, 赵建军, 邵晓风, 黄鹏 申请人:易程(苏州)软件股份有限公司